VC++から別のAPP起動について!! – プログラミング – Home

VC++から別のAPP起動について!!
 
通知
すべてクリア

[解決済] VC++から別のAPP起動について!!


わん
 わん
(@わん)
ゲスト
結合: 23年前
投稿: 4
Topic starter  

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です。
なにかしら情報をお持ちの方、回答お願い致します。


引用未解決
トピックタグ
Bun
 Bun
(@Bun)
ゲスト
結合: 24年前
投稿: 761
 

まずSTARTUPINFO構造体の内容を初期化してはいかがでしょうか?

::ZeroMemory(&si, sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOWMAXIMIZED;

私はまず上記のように初期化してCreateProcess()したことがありました。(^^;


返信引用
sugar
 sugar
(@sugar)
ゲスト
結合: 23年前
投稿: 448
 

「起動しなかった」と思うとき、CreateProcess()の戻り値は失敗してますか?
失敗だったとき、GetLastError()でエラー値を拾ってみましたか?

後ろから2番目の引数STARTUPINFO構造体は、初期状態を指示するために指定するもので、
関数から情報を受け取るものではなかったような。
Bunさんの初期化をする話は、やるべきです。


返信引用
わん
 わん
(@わん)
ゲスト
結合: 23年前
投稿: 4
Topic starter  

回答ありがとうございます。

STARTUPINFO構造体の初期化で上手くいきました。
(すごく助かりました♪♪)
Bunさんsugarさんありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました