получить путь% APPDATA% с помощью c ++ - PullRequest
5 голосов
/ 21 декабря 2010

Эй, ребята, я хочу получить путь к папке% APPDATA%.

в win 2000 & xp: C: \ Documents and Settings \ имя пользователя \ Application Data

в vista и win7 он находится в: C: \ Users \ имя пользователя \ AppData \ Roaming

Я знаю, что есть функция SHGetSpecialFolderPath , но она получает BOOL, и я хочу получить путькак строка.

Может ли кто-нибудь помочь?

1 Ответ

7 голосов
/ 21 декабря 2010

Третий параметр SHGetSpecialFolderPath() с именем lpszPath помечен как __out.

Что-то вроде этого должно сделать:

// Beware, brain-compiled code ahead!
wchar_t buffer[MAX_PATH];
BOOL result = SHGetSpecialFolderPath( hWnd
                                    , buffer
                                    , CSIDL_LOCAL_APPDATA
                                    , false );
if(!result) throw "You'll need error handling here!";
std::wcout << buffer;

Примечание. Я давно не работал с Win API. Очень вероятно, что кто-то скоро придет, указывая, где я это испортил.

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