使用c ++获取%APPDATA%路径

Tom*_*Tom 5 c++ visual-c++

嘿伙计们,我想获得%APPDATA%文件夹的路径.

在win 2000&xp中它位于:C:\ Documents and Settings \用户名\ Application Data

在vista和win7中它位于:C:\ Users \用户名\ AppData\Roaming

我知道有SHGetSpecialFolderPath函数,但它检索BOOL,我想将路径作为字符串.

有人可以帮忙吗?

sbi*_*sbi 7

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;
Run Code Online (Sandbox Code Playgroud)

注意:我多年没有完成任何Win API工作.很可能很快就有人指出我吹的地方.