2004年6月12日土曜日

MS-Windowsプログラム覚え書き

その1.GUID
GUID が BE209997-0C6C-11D3-97CF-00C04F8EEC55 の場合、
ネットワークバイトは、ハイフン区切りで最初の3つはエンディアンの並びが逆。
後ろの2つはそのまま。
上記の GUID を1バイトずつファイルもしくはソケットから読み込むと、
0x97 0x99 0x20 0xBE 0x6C 0x0C 0xD3 0x11 0x97 0xCF 0x00 0xC0 0x4F 0x8E 0xEC 0x55
となる。

その2. UTF-16 を printf する。
UTF-16 の文字列を WCHAR[] に読み込んで、printf で出力しようとすると、UTF-16 上位バイトの 0x00 をNULL ターミネータとして認識してしまう。
これを避けるためには、%s の代わりに %ls を使う。

WCHAR* wc;
(文字列読み込み)
printf("%ls\r\n", wc);

0 件のコメント:

コメントを投稿