0
我想從createprocess函數的代碼中啓動一個進程。命令行是好的,另一個EXE,我可以從Visual Studio沒有問題地啓動它。CreateProcess函數問題
當我試圖從createprocess的其他進程啓動它時,它給了我 - 運行時錯誤此應用程序請求運行時以非常規方式終止它。
可能是什麼問題?我怎樣才能消除這個問題?
STARTUPINFO si;
PROCESS_INFORMATION pi;
bool bResult;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
//Cast System::String* __gc to char*
char* chAppName = (char*)(void*)Marshal::StringToHGlobalAnsi(AppName);
char* chCmdLine = (char*)(void*)Marshal::StringToHGlobalAnsi(CmdLine);
//Start the child process.
bResult = CreateProcess(chAppName, // No module name (use command line)
chCmdLine, // Command line
NULL, // Process handle not inheritable
NULL, // Thread handle not inheritable
FALSE, // Set handle inheritance to FALSE
0, // No creation flags
NULL, // Use parent's environment block
NULL, // Use parent's starting directory
&si, // Pointer to STARTUPINFO structure
&pi); // Pointer to PROCESS_INFORMATION structure
你的意思是c#而不是C++? –
您可以發佈您用於創建過程的代碼嗎? – doctorlove
我正在使用託管C++(C++。NET)。 –