こんにちは。
以前からDXライブラリを愛用させていただいています。
今回、アーカイブ関係の処理で不具合を見つけたので報告させていただきます。
graphic.dxaとgraphic2.dxaのような2つのアーカイブがあると、graphic.dxa内のファイルを読み込んだ後はgraphic2.dxa内のファイルにアクセスできなくなります。
dxarchive_.cpp内のDXA_DIR_Open()関数内で、使用するアーカイブが同一かどうかの判定をする部分において、
if( DXARCD.BackUseDirectoryPathLength != 0 && _STRNCMP( fullpath, DXARCD.BackUseDirectory, DXARCD.BackUseDirectoryPathLength ) == 0 )
となっていますが、これでは最初に挙げた例のように、DXARCD.BackUseDirectoryにgraphicが入ってしまうと、fullpathにgraphic2があっても最後の"2"が比較対象に入らないために、graphic2.dxa内のファイルをgraphic.dxa内から探そうとしてしまうようです。
とりあえず、暫定処置として、このif文を
if( DXARCD.BackUseDirectoryPathLength != 0 && _STRNCMP( DXARCD.BackUseDirectory, fullpath, 256 ) == 0 )
とすることで問題を回避しました。