此代码适用于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 \&lt; - 光标在这里。 不提供换行符。 我也有俄语窗口xp。我认为这是unicode问题。
当我使用wprintf时,我得到了: C:\ Documents and Settings \ Admin \ ???????? .....
感谢。
答案 0 :(得分:2)
问题是XP控制台使用的字体不包含您尝试输出的俄语字符的字形。 Windows 7附带并在其控制台中默认使用的字体确实具有更广泛的Unicode代码点覆盖范围。您需要将控制台配置为使用包含所需字形的字体。