В настоящее время я пытаюсь получить полный путь к файлу из моего исполняемого файла, указав идентификатор процесса, и это работает "нормально", поскольку он может возвращать некоторую необходимую информацию, однако по какой-то причине он становится поврежденным, и это можно увидеть, когда вы пытаетесь вернуть его как простую строку: C, и если вы перебираете каждый символ и печатаете каждую букву, вы получаете еще больше беспорядка. Где моя текущая кодировка неверна при попытке выделить мой буфер?
std::string User::getFullPath() {
HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, GetCurrentProcessId());
char buffer[MAX_PATH];
if (hProcess != NULL)
{
GetModuleFileNameEx(hProcess, NULL, (LPWSTR)buffer, MAX_PATH);
CloseHandle(hProcess);
}
for (char i : buffer) {
std::cout << i<<std::endl;
}
return buffer;
}
введите описание изображения здесь
Как правильно выделить память в этом случае, чтобы предотвратить повреждение