C/C++でWindows APIを使おうと<windows.h>をインクルードすると、大量の型がtypedefによってもたらされます。そこでヘッダを除いて文字に関するものだけを抜き出してみたら結構な数になりました。ABの型との対応と併せて表にまとめようと思っていたのですが、ここに載せるには大きすぎます。

そのとき以前取得したWebのスペースを思い出しました。その直後にこのブログのお誘いを受けてあえなく寝かすことになってしまったのです。

そういうわけで、型の一覧をWindows APIの型とC/C++及びActiveBasicの型との対応としてまとめました。気が向いて、暇ができたらせめて少しはデザインに凝りたいです。

ところで、そこに書いてあるように最新のヘッダでは4バイト符号なし整数型からtypedefされたUCSCHARなる型があります。UCS-4かと思えば(少なくとも現在では)UTF-32ではないかという一見不思議な型です。

UTC-4はISO/IEC 10646で定義され、U+0からU+7FFFFFFFまで文字(グリフ)が割り当てられることができる符号化形式です。一方UTF-32はUnicode コンソーシアムで定義され、1文字には32ビットを使いますがU+0からU+10FFFFまでしか(実質21ビット)使用しない符号化形式です。U+10FFFFまでとは、ちょうどUTF-16が表せる範囲です。いずれにせよ現在ではまだU+10FFFFまで達していないので、両者を同じと見做してもそう大きな違いはありません。UTF-32/UTC-4 – 英語版Wikipeidaも参考にしてください。


スポンサード リンク

この記事のカテゴリ