【发布时间】:2016-04-10 03:23:08
【问题描述】:
我对 C++ 中的 WinAPI 编程比较陌生。我正在尝试编写一个程序,该程序将使用 GetComputerName() 获取系统主机名。理想情况下,我希望代码能够在英语和非英语系统上工作。以下是我正在使用的代码:
int main()
{
wstring hostname;
wchar_t nbtName[MAX_COMPUTERNAME_LENGTH + 1];
DWORD length = MAX_COMPUTERNAME_LENGTH + 1;
GetComputerName(nbtName, &length);
hostname = nbtName;
wcout << hostname << endl;
return 0;
}
代码在我的英语 Windows 7 系统上运行良好,但代码似乎无法在我的德语 Windows 7 系统上正确显示(它使用德语字符作为主机名)。我认为 wstring 和 wchar_t 可以处理这些特殊字符。这是我的德语 Windows 7 系统上显示的内容。
COMPUTER-Í─▄▀
我是否忽略了一些愚蠢的事情?谢谢!
【问题讨论】:
-
您能否成功将名称复制/粘贴到控制台中?也许控制台使用的字体对于所需的代码点具有不同的字形。
-
如果我使用 Windows“主机名”命令,德语字符会正确显示。