此代码适用于 Windows 7,但不适用于 Windows XP(仅输出启动文件夹路径的一部分)
#include <iostream>
#include <shlobj.h>
using namespace std;
int main()
{
wchar_t startupFolder[1024];
HRESULT hr = SHGetFolderPath(0, CSIDL_STARTUP, 0, 0, startupFolder);
if (SUCCEEDED(hr))
wcout << L"Startup folder = " << startupFolder << endl;
else
cout << "Error when getting startup folder\n";
getchar();
return 0;
}
输出为:启动文件夹 = C:\Documents and Settings\Admin\ <- 光标在这里。不提供换行符。我也有俄罗斯window xp。我认为这是 unicode 问题。
当我使用 wprintf 我得到: C:\Documents and Settings\Admin\???????? ......
谢谢。