CreateProcess Returned 2
Ошибка "createprocess returned 2" означает, что функция CreateProcess не смогла запустить запрошенный процесс. Код возврата 2 указывает на ошибку файла, в котором может быть не найден исполняемый файл для запуска или загруженный файл может быть поврежден.
Для решения этой проблемы необходимо убедиться, что путь к исполняемому файлу задан правильно и файл находится в заданном месте. В случае с поврежденным файлом вам может потребоваться переустановить приложение или обновить программное обеспечение, которое вы пытаетесь запустить.
Пример кода на языке C++ к созданию процесса с помощью функции CreateProcess:
#include
#include
int main()
{
STARTUPINFO sInfo;
PROCESS_INFORMATION pInfo;
ZeroMemory(&sInfo, sizeof(sInfo));
sInfo.cb = sizeof(sInfo);
ZeroMemory(&pInfo, sizeof(pInfo));
if (!CreateProcess("c:\\Windows\\System32\\notepad.exe", // имя исполняемого файла
NULL, // аргументы командной строки
NULL, // атрибуты безопасности процесса
NULL, // атрибуты безопасности потока
FALSE, // дескрипторы наследования (установите true, чтобы наследовать дескрипторы)
0, // флаги создания процесса
NULL, // переменные окружения
NULL, // текущий каталог для нового процесса
&sInfo, // структура информации о запуске
&pInfo // структура информации о процессе
))
{
printf("Ошибка при запуске процесса (%d).\n", GetLastError());
return 1;
}
WaitForSingleObject(pInfo.hProcess, INFINITE); // Ожидание завершения процесса
printf("Процесс завершен.\n");
CloseHandle(pInfo.hProcess); // Закрытие дескриптора процесса
CloseHandle(pInfo.hThread); // Закрытие дескриптора потока
return 0;
}
Этот код запускает Notepad.exe и ожидает завершения процесса. Если функция CreateProcess не смогла запустить Notepad.exe, она вернет соответствующую ошибку, и программа выведет сообщение об ошибке.