Я пытался создать процесс с CreateProcess
в C ++. Но эта функция всегда возвращает false.
Вот некоторые части моего кода:
#if UNICODE
std::wstring exename =
#else
char* exename =
#endif
_T("c:\\Windows\\Notepad.exe");
STARTUPINFO si;
memset(&si, 0, sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOW;
PROCESS_INFORMATION pi;
if (!CreateProcess(exename, NULL, NULL, NULL, false, 0, NULL, NULL, &si, &pi))
{
cout << "Error code=" << GetLastError() << endl;
}
Программа показывает код ошибки 123. И я попытался сделать exename
в качестве второго параметра, затем код ошибки изменился на 2.
Я погуглил его в течение дня и попытался изменить кодировку проекта на Multibyte или Unicode, заменив CreateProcess
на CreateProcessA
или CreateProcessW
, заменив char *
с LPCSTR
или LPCWSTR
и многими другими попытками. Никто из них не решил проблему, но показал тот же код ошибки.
Я запускаю этот код в Windows 10 и компилирую его с Visual Studio 2013. Я уверен, что «c: \ Windows \ Notepad. exe "существует на моем компьютере.
Это свело меня с ума, пожалуйста, помогите мне. Любая подсказка приветствуется.
Решение этой проблемы:
Не копируйте и не вставляйте путь к файлу из диалогового окна свойств проводника Windows, оно может содержать некоторые скрытые персонажи.