C++でのWinAPIプログラミングが比較的新しいです。私は、GetComputerName()を使用してシステムのホスト名を取得するプログラムを作成しようとしています。理想的には、英語と英語以外のシステムでコードを動作させたいと思っています。GetComputerName()がWindowsコンソールでUnicodeを正しく表示しない
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-Í─▄▀
私は何か愚かなものを見落としていますか?ありがとう!
名前をコンソールにコピー&ペーストできますか?おそらくコンソールは、必要なコードポイントに対して異なるグリフを持つフォントを使用しています。 – enhzflep
Windowsの "hostname"コマンドを使用すると、ドイツ語の文字が正しく表示されます。 – t3ntman