Witam
Chciałem programowo stworzyć proces - jak wydało mi się to dość trywialne, rzuciłem okiem do dokumentacji i... nie wiem dlaczego to nie działa. Przejrzałem już chyba wszystkie wątki w internecie. Jakąkolwiek ścieżkę postaram się podać, to kończę z błędem nr. 2, czyli nie udało się znaleźć exe'ka.
Program pod MSVC 2019.
#include <stdio.h>
#include <string>
#include <windows.h>
int main(){
PROCESS_INFORMATION process_info;
STARTUPINFO startup_info = {sizeof(STARTUPINFO)};
std::string str = "C:\\Windows\\System32\\notepad.exe";
BOOL result = CreateProcess(
(LPCTSTR)str.c_str(),
NULL, NULL, NULL, FALSE, 0, NULL, NULL,
&startup_info, &process_info);
if (!result) {
fprintf(stderr, "CreateProcess failed %u\n", GetLastError());
return 1;
}
CloseHandle(process_info.hThread);
printf("New process started(pid: %u)",
static_cast<unsigned int>(process_info.dwProcessId));
WaitForSingleObject(process_info.hProcess, INFINITE);
CloseHandle(process_info.hProcess);
puts("The child process has exited\n");
return 0;
}
PerlMonk