操作
バグ #577
完了composite を実行すると"Composite.exe [3740] でハンドルされていない Win32 の例外が発生しました"が発生する
ステータス:
終了
優先度:
通常
担当者:
-
対象バージョン:
-
開始日:
2009/04/27
期日:
進捗率:
100%
予定工数:
説明
- 現象:
windows 版の examples の Composite を実行すると、"Composite.exe [3740] でハンドルされていない Win32 の例外が発生しました"が発生する。
conf ファイルで preload を指定すると発生する。
匿名ユーザー さんが15年以上前に更新
- ステータス を 新規 から 終了 に変更
- 進捗率 を 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 で問題なく動作することを確認。
操作