C - WinAPI GetLastError возвращает 3 - PullRequest
0 голосов
/ 28 января 2019

Функция GetLastError возвращает код ошибки 3, который объясняет, что указанный путь не может быть найден.Зачем?Есть ли конкретный способ указания файлов пути с WinAPI?Я знаю, что путь к файлу указан правильно, потому что я скопировал и вставил его.

char tDirectory[] = "C:\\Windows\\System32\\notepad.exe"; 

    if (!CreateProcess(tDirectory, NULL, NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &si, &pi)) {

        printf("Error creating process, with error code: %d\n", GetLastError());
        return 1;

    }

    printf("Process created...");

    return 0;

}

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Является ли ваше приложение 32-битным?Если это так, то вы, вероятно, не справились с Windows * File System Redirector , который дает 32-битным приложениям фильтрованное представление файловой системы для определенных каталогов.

Чтобы обойти это, вы можетеdo:

void *was;
Wow64DisableWow64FsRedirection (&was);
CreateProcess (...);
Wow64RevertWow64FsRedirection (was);

И это должно исправить.

0 голосов
/ 28 января 2019
CreateProcessA

Исправил мой код, спасибо всем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...