int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow )
{
char fname[]= C:\\Project1.exe ;
STARTUPINFO si;
PROCESS_INFORMATION pi;
if (CreateProcess(NULL,fname,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,
NULL,NULL,&si,&pi) == 0 )
{
・
・
}
return 0;
}
上記の様にコードを記述しているのですが、
なぜかAPP(Project1.exe)が起動したりしなかったりします。
(数回に1回は起動するのですが・・・?)
なにか原因があるのでしょうか。
現在の環境はWindows98です。
なにかしら情報をお持ちの方、回答お願い致します。
まずSTARTUPINFO構造体の内容を初期化してはいかがでしょうか?
::ZeroMemory(&si, sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOWMAXIMIZED;
私はまず上記のように初期化してCreateProcess()したことがありました。(^^;
「起動しなかった」と思うとき、CreateProcess()の戻り値は失敗してますか?
失敗だったとき、GetLastError()でエラー値を拾ってみましたか?
後ろから2番目の引数STARTUPINFO構造体は、初期状態を指示するために指定するもので、
関数から情報を受け取るものではなかったような。
Bunさんの初期化をする話は、やるべきです。
回答ありがとうございます。
STARTUPINFO構造体の初期化で上手くいきました。
(すごく助かりました♪♪)
Bunさんsugarさんありがとうございました。