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

标签 c++ visual-c++

我想获取 %APPDATA% 文件夹的路径。

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

在 vista & win7 中它在: C:\Users\user name\AppData\Roaming

我知道函数 SHGetSpecialFolderPath但它检索一个 BOOL 我想获取字符串形式的路径。

最佳答案

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 工作了。很可能有人会很快指出我在哪里搞砸了。

关于c++ - 使用 C++ 获取 %APPDATA% 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4498223/

相关文章:

javascript - 如何使用可从 Javascript 调用的 ATL 和 VS2010 创建 C++ COM 对象(带有类工厂)

c++ - 通过构造函数将值传递给 std::ifstream

c++ - fatal error : iostream. h 没有这样的文件或目录

c++ - 结构内存限制

c++ - 查找对象 float 状态的优化方法

c++ - 堆上分配的内存大小

c++ - 从 SYSTEMTIME 到 time_t 的转换给出 UTC/GMT 时间

c++ - Visual Studio 2010 C++,无法打开包含文件 : 'afxwin.h' , 'TCHAR.H' 和 'cassert'

c++ - 避免在bzhi(y,tzcnt(x))中使用不必要的mov ecx,ecx指令

c++ - 默认构造函数调用