Получение нарушения прав доступа при попытке сохранить путь к папке, возможная ошибка в преобразовании LPSTR / String - PullRequest
0 голосов
/ 27 мая 2018

Я пытаюсь получить локальную папку Appdata и сохранить ее в строку.Я, кажется, что-то не так с моими переменными, так как я получаю нарушение прав доступа при попытке сохранить путь к папке в строку.

Код:

PSTR buffer;
HRESULT hRes = SHGetSpecialFolderPathA(NULL, buffer, CSIDL_APPDATA, FALSE);
std::string executingPathFolder = buffer;

1 Ответ

0 голосов
/ 27 мая 2018

Давайте рассмотрим MSDN

lpszPath [out]

Указатель на строку с нулевым символом в конце, которая получает диск и путь к указанной папке,Размер этого буфера должен быть не менее MAX_PATH.

Вы должны быть осторожны с WinAPI - некоторые методы, возвращающие буферы, выделяют их, некоторые, например, записывают в выделенный буфер.Пожалуйста, посмотрите здесь, как создать std :: string из LPSTR Как мне преобразовать LPCTSTR в std :: string?

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