終了時のランタイムエラーについて

[戻る]
wood 2002/02/26(火) 07:09:16
Win2000&XP
VC++6.0(SP5) MFC、ODBC、SQL7.0(DE)(SP3)

プログラム (A.EXE)から(B.EXE)を呼び出し
      (B.EXE)から(C.EXE)を呼び出し
C.EXEのタイトルバーにある「×」(クローズボタン)を押して終了
とするとB.EXEがランタイムエラーを引き起こしてしまいます
MFC42D.DLL内にあると出るのですが
それぞれは単独での実行は特に問題なく動作しているようなのですが
このような連続呼び出しを行ったときはどんなデバックしたら良いのか
アドバイスお願いします

呼び出し方法は以下の用にしています、尚これは自作MFC拡張DLLを呼び出して
実行しています

sprintf(CMD,"%s /%4.4d %s", *i_CMD, i_Owner, *i_OPT);
if (RT_CD = CreateProcess(    NULL,CMD ,NULL,NULL,FALSE,            
            CREATE_NEW_PROCESS_GROUP, // 0
            NULL,NULL,
            &si, 
            &pi) )
引数の値は
i_CMDはそれぞれの実行時にB.EXEとか、C.EXE
i_Ownerはint型で「1」です
i_OPTの内容はスペース10個です

TAKA 2002/02/26(火) 09:43:09
MSDNのCreateProcess 関数の解説です。多分このあたりが原因ではないでしょうか?

//---
作成したプロセスが終了しても、プロセスのハンドルやスレッドのハンドルを CloseHandle 関
数で破棄しないかぎり、システム内に残ります。したがって、PROCESS_INFORMATION 構造体で
受け取ったハンドルは、不要になり次第、CloseHandle 関数で破棄するようにしてください
---//

wood 2002/03/02(土) 20:46:19
[[解決]]
ごめんなさい
リンクしている LIBが古いものでした

古いスレッドには追加発言できません。