リリースモードでCImageが壊れます…

解決


ここ  2006-03-30 15:11:47  No: 61084  IP: 192.*.*.*

複数のデータファイルを読み込んできて内部で画像を作り、CImageを通して吐き出すプログラムを組んでいます。

データファイル読み込み部分は、コモンダイアログで行っており、
OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_EXPLORER | OFN_ALLOWMULTISELECT
をオプションにつけて複数ファイルに対応しています。

デバッグモードで行うと問題ないのですが、リリースモードにした場合、読み込みファイルが十数個になった辺りで唐突にCImageがエラーを起こします。
(十個以内程度であれば、やはり問題なく動作しています)

エラーが出るのは、CImage.Save()で、返り値にたどり着く以前に落ちてしまっています。
具体的にはCImage::CInitGDIPlus::ReleaseGDIPlus()関数内の
EnterCriticalSection(&m_sect);
のm_sectがとれずにアクセス違反になっています。CImageのインスタンス自体は存在しているのですが、複数ファイルを読み込んだ瞬間にビットマップの中身が0になることがあるため、壊れているのではないかと思われます。

デバッグモードとリリースモードでは実行速度が10倍くらい違うので、できればリリースモードの速度がほしいです。
何か情報お持ちの方、アドバイス等お願いします。

編集 削除
ここ  2006-04-04 10:06:17  No: 61085  IP: 192.*.*.*

最大限に単純化したプログラムに直すと、エラーは出ませんでした。
どうもCImageの使い方を間違っているような気がします…

編集 削除