バグ #577
完了
composite を実行すると"Composite.exe [3740] でハンドルされていない Win32 の例外が発生しました"が発生する
匿名ユーザー さんが15年以上前に追加.
15年以上前に更新.
説明
- 現象:
windows 版の examples の Composite を実行すると、"Composite.exe [3740] でハンドルされていない Win32 の例外が発生しました"が発生する。
conf ファイルで preload を指定すると発生する。
- ステータス を 新規 から 終了 に変更
- 進捗率 を 0 から 100 に変更
- 原因 :
LoadLibraryEx の引数 (dwFlags) で DONT_RESOLVE_DLL_REFERENCES を指定していたために発生していた。
DONT_RESOLVE_DLL_REFERENCES を指定した場合、指定したモジュールが参照する実行可能モジュールをシステムが補足的にロードすることがない。
coil::DynamicLib::open のデフォルト設定が DONT_RESOLVE_DLL_REFERENCES 。
そのため、RTM で open をデフォルトでコールすると必要な dll がロードされず発生する。
- 対策 :
coil::DynamicLib::open のデフォルトを DONT_RESOLVE_DLL_REFERENCES から LOAD_WITH_ALTERED_SEARCH_PATH に変更。
- ビルド確認 :
Windows-XP-VC2005-i386,Windows-Vista-VC2008-i386 で問題なくビルドできることを確認。
- composite 動作確認:
Windows-XP-VC2005-i386,Windows-Vista-VC2008-i386 で問題なく動作することを確認。
他の形式にエクスポート: Atom
PDF