Я пытаюсь использовать msdn function (CreateProcess) на C++ для запуска приложения. Я не получаю никаких ошибок, но когда я запускаю его, он падает. Я также заметил, что он создал процесс, но он не запускал текстовый файл, который он должен был использовать.Сбой при создании процесса
Мой код:
#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
Я пробовал с исполняемым файлом, и он тоже не работал. (Err: команда консоли Windows остановлена) – Andy