Sma*_*ery 16 c++ mfc visual-c++
从Visual C++,如何获取当前用户的My Documents文件夹的路径?
编辑:
我有这个:
TCHAR my_documents[MAX_PATH];
HRESULT result = SHGetFolderPath(NULL, CSIDL_MYDOCUMENTS, NULL, SHGFP_TYPE_CURRENT, my_documents);
Run Code Online (Sandbox Code Playgroud)
然而,result
回来的价值是E_INVALIDARG
.有什么想法可能是这样吗?
Jer*_*fin 21
这取决于您需要兼容的系统的年龄.对于旧系统,有SHGetSpecialFolderPath.对于更新的系统,有SHGetFolderPath.从Vista开始,有SHGetKnownFolderPath.
编辑:您想要使用__CODE__
,而不是__CODE__
.演示代码,至少在我的机器上有效:
#include <windows.h>
#include <iostream>
#include <shlobj.h>
#pragma comment(lib, "shell32.lib")
int main() {
CHAR my_documents[MAX_PATH];
HRESULT result = SHGetFolderPath(NULL, CSIDL_PERSONAL, NULL, SHGFP_TYPE_CURRENT, my_documents);
if (result != S_OK)
std::cout << "Error: " << result << "\n";
else
std::cout << "Path: " << my_documents << "\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)