AfxEndThreadは誤訳でしたね。最新のWeb版では直ってます。
>ローカルオブジェクトのデストラクタを呼ばずにスレッドだけ終了してしまうから、
>私なら絶対に使いませんけど AfxEndThread
という心配があるのも確かですが、この場合は多分関係なさそうです。
>#CMainFrame とかの this 渡しについては、
>#当人が CMainFrame 担当、サブスレッド担当は実力の知れない別の人、
>#という想定のもとで this か HWND を渡せと言われたらどっちにするか、
>#というのが当人にとっての危険度最終判断になるかと思います。
#にレスもアレですが、私なら、排他制御つきのクラスを作って、それへのポインタを
渡しますね。HWNDはprivateかprotectedで持たせて、内部的にPostMessageするなりします。
えーと、返答が遅くなって申し訳ありません。
・まず、AfxBeginThreadが止まった確認ですが..
前後にメッセージを表示させるようにしておいて、後のメッセージが表示されませんでした。
・動くexe動かないexe両方とも実行環境はWindowsXPEmbeddedです。
・MFCのバージョンは合っています。
・sub_init、AfxBeginThreadに関しては排他制御されています。
で調べていたところ..動かないexeの方では、InitInstanceの中でsubprocを呼び出していま
した。
MFC DLLではイニシャル中?にスレッドを作るとDLLがハングするとありました
( http://support.microsoft.com/default.aspx?scid=kb%3Bja%3B142243)
のでそれが関係しているのかと思いexeの方を修正したところ、止まることはなくなりました。
根本的な解決(というか原因があっているのか)にはなってませんが..
こういう原因はあるのでしょうか?
バラモンさん、はじめまして。
#3週間変化しないまま、過去ログになるには少々心残り。
tetrapodさんの指摘( 2006/03/02(木) 11:37:23)
>動かない EXE ってシングルスレッドモデルでコンパイルされていませんか?
↑の可能性はありませんか?
「EXE」のソースの変更時に、何気なく生成オプションも変えたとかで。
バラモンさんの追加の質問( 2006/03/07(火) 18:47:35)
>MFC DLLではイニシャル中?にスレッドを作るとDLLがハングするとありました
「DLL」を変更したとかであれば納得できる理由です。しかし、変更が「EXE」なので
関係の有無について明確に把握している方がいないのでは?
#3週間変化の無い現状が物語っていると思います。
#スレッドの生成時にクリティカルな問題を抱えていて共通している原因かも
#しれませんが、判りません。
時間的な余裕があればtetrapodさんの指摘の確認と報告をお願いしたいです。