----------------------------------------------------------------
char CMD[128];
STARTUPINFO si;
PROCESS_INFORMATION pi;
m_pSet = &GetDocument()->m_sSMSTARTSet;
sprintf(CMD,SSMMNU.EXE %4d,m_pSet->m_COP_ID);
::GetStartupInfo( &si);
if (CreateProcess( NULL,
CMD ,
NULL, NULL, FALSE,
CREATE_NEW_PROCESS_GROUP,
NULL, NULL, &si, &pi) )
{
// PROCESS_INFORMATION 構造体に返るハンドルは開放されないので
// 呼び出し側が開放しなければならない
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
return TRUE;
}
return FALSE;
---------------------------------------------------------------------------
こんなソース書きましたが どうもパラメータ渡しで新たなプロセス起動することができません
何が間違っているのでしょうか
誰か教えてください
確か、STARTUPINFO構造体のcbというメンバーに構造体のサイズを設定しないといけなかったような気がします。
こんな感じで。
si.cb = sizeof(STARTUPINFO);
Nao@NSoft サン ありがとうございました
ですがエラーの原因がほかのところにあり
ご指摘の件に関してはこちらの記述ミスでした
参考にした書籍の方にはいろいろありましたが以下の記述に対する注意事項がのっていませんでした
sprintf(CMD,SSMMNU.EXE %4d,m_pSet->m_COP_ID)この部分に間違いがありました
正解はsprintf(CMD,SSMMNU.EXE /%4d,m_pSet->m_COP_ID)でした
つまり dosコマンドラインで ”SSMMNU.EXE 0001”だとエラーになり
”SSMMNU.EXE /0001”だとエラーにならない
ようです