我使用此代碼啓動我的程序CreateProcess()無法正常工作
int _tmain(int argc, _TCHAR* argv[])
{
STARTUPINFO cif;
ZeroMemory(&cif,sizeof(STARTUPINFO));
PROCESS_INFORMATION pi;
if (CreateProcess(L"C:\\test\\test.exe",NULL,
NULL,NULL,FALSE,CREATE_UNICODE_ENVIRONMENT,NULL,NULL,&cif,&pi)==TRUE)
{
cout << "process" << endl;
cout << "handle " << pi.hProcess << endl;
}
system("pause");
return 0;
}
程序正常啓動,但立即失敗(沒有響應並失敗)。 CreateProcess返回true。當我從代碼啓動test.exe時,它可以正常工作。
調試器告訴你什麼是錯誤的?你*是*使用調試器,不是嗎? –
哪個程序崩潰,正在啓動新進程的代碼或test.exe? –
如果您將進程創建標誌(而不是CREATE_UNICODE_ENVIRONMENT)傳遞給「0」,會發生什麼情況?您將'CREATE_UNICODE_ENVIRONMENT'作爲此標誌和'NULL'傳遞給環境塊,但是您確定調用進程的環境塊使用'UNICODE'字符嗎? –