LoginSignup
0
0

More than 5 years have passed since last update.

SHBrowseForFolderで固まった…私の場合

Posted at

問題の切り分け

MFCのCDialogアプリケーションにCLI/C++でのIPC通信を行うDLLを組み込んだ場合のみ現象化する。
いろいろ調べると以下の現象とよく似ている。
MFC アプリケーションは、Visual C++ .net または Visual C++ の 2005 年には、マルチ スレッド アパートメントとしてアプリケーションを初期化するときに応答を停止します。

結果

IPC通信する処理を組み込むと現象化することからアプリケーションの初期化時にCoInitializaEx(NULL,COINIT_APARTMENTTHREADED)
アプリケーションの終了時にCoUninitialize()を呼ぶことでいまのところ期待動作をしている。

考察

COM関連でのイベント処理でどのスレッドでイベントを処理するかがデフォルトと違う場合にのみ現象化する。。。?

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0