トップページ > 過去ログ > 記事閲覧
アーカイブ内のファイルが正常に読み込めないことがある
名前:TCE 日時: 2008/01/05 20:21

こんにちは。 以前から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 ) とすることで問題を回避しました。

Page: 1 |

Re: アーカイブ内のファイルが正常に読み込めないことがある ( No.1 )
名前:管理人 日時:2008/01/14 13:41

ご指摘ありがとうございます。 修正版をアップしましたので、宜しければお使いください。m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい) なお、VC版は今回のバージョンからプロジェクトで使用するランタイムライブラリを   デバッグビルド時は マルチスレッド デバッグ(/MTd) を   リリースビルド時は マルチスレッド(/MT) を 使用するように設定する必要がありますので、お手数ですがご変更の程お願い致します。
Re: アーカイブ内のファイルが正常に読み込めないことがある ( No.2 )
名前:TCE 日時:2008/01/19 23:00

返信が遅れてすみません。 改善を確認しました。 ありがとうございます。

Page: 1 |