我寫了一個應用程序,它只是執行java -jar
。我希望啓動器應用程序在執行CreateProcessA
後立即退出。CreateProcess阻塞 - 奇怪的行爲
LPSTR _cmdupdate = const_cast<char *> (cmdupdate.c_str());
STARTUPINFO info = {sizeof (info)};
ZeroMemory(&info,sizeof(info));
info.cb=sizeof(info);
PROCESS_INFORMATION processInfo;
ZeroMemory(&processInfo,sizeof(processInfo));
CreateProcessA(TEXT(java_exe.c_str()), _cmdupdate, NULL, NULL, false, 0, NULL, TEXT("bin"), &info, &processInfo);
CloseHandle(processInfo.hProcess);
CloseHandle(processInfo.hThread);
exit(0);
如果我'通過IDE執行這一(Netbeans的7)一切工作正常:JAVA繼續運行時啓動終止。 如果我通過雙擊運行相同的exe文件:java啓動jar,但啓動程序等待java進程退出。
那麼當通過IDE運行獨立運行時,CreateProcess有什麼不同?
您沒有正確初始化'STARTUPINFO'和'PROCESS_INFORMATION'。你檢查過'CloseHandle()'的返回值嗎? – 2012-02-13 09:59:52
CloseHandle在兩種情況下返回'1'。這兩個結構的哪些值必須在最小的情況下初始化? – gorootde 2012-02-13 10:08:04
下面是示例:http://msdn.microsoft.com/en-us/library/windows/desktop/ms682512(v=vs.85).aspx – 2012-02-13 10:12:59