我試圖在C++中使用msdn function (CreateProcess)來運行應用程序。我沒有得到任何錯誤,但是當我運行它時,它崩潰了。我所做的也注意到它創建了一個過程,但它沒有運行它應該的文本文件。創建進程時崩潰
我的代碼:
#include <windows.h>
#include <iostream>
#include <string>
using namespace std;
void createPro();
int main()
{
createPro();
}
void createPro() {
LPCTSTR lpApplicationName = "C:/Users/Andyy/Desktop/hello.txt";
LPSTARTUPINFO lpStartupInfo;
LPPROCESS_INFORMATION lpProcessInfo;
memset(&lpStartupInfo, 0, sizeof(lpStartupInfo));
memset(&lpProcessInfo, 0, sizeof(lpProcessInfo));
if (!CreateProcess(lpApplicationName,
NULL, NULL, NULL,
NULL, NULL, NULL, NULL,
lpStartupInfo,
lpProcessInfo
)
) {
cout << "Failed to create process" << lpApplicationName << endl;
}
cout << "Program exec: " << lpApplicationName << endl;
}
它創建的過程,但它無法運行的文本文件,並沒有錯誤編譯器中顯示。提前致謝。 返回錯誤:處理返回-1073741819(0xC0000005)
您的'lpApplicationName'應該是一個可執行文件的名稱。相反,它指的是一個文本文件,而'CreateProcess'可能會因爲無法執行文本文件而失敗。也許用文字來描述你想做什麼? – kfx
「崩潰」。不,它不會崩潰。崩潰是由於未處理的,未收集的錯誤導致的進程異常終止。忽略返回值不會導致進程終止。 – MSalters
我試着用一個可執行文件,它也沒有工作。 (錯誤:Windows控制檯命令停止工作) – Andy