« まったりとテスト | トップページ | Tab文字の展開 »

2007年1月 5日 (金)

CharPrevWとCharNextW

WindowsAPIのCharPrevWとCharNextW。どっかで、CharPrevWとCharNextWは合成文字をきちんと処理してくれると記事で読んだ。

で、前にGetFontUnicodeRangesの記事でGetExtentPoint32Wに前に基底文字が存在しない単独の合成文字だけを渡すと0の幅を返すと書いたが、それと同様、前に基底文字が存在しない状態でCharPrevWとCharNextWを呼んでみた。Windows2000ではCharNextWはポインタを次の文字に進めてくれたが、CharPrevWはポインタを前に進めてくれない。ということは、そのような不完全な文字列でCharPrevWを使いループしてると終了条件によっては、無限ループになる。不完全な文字列というのは、外部からデータをファイルなどとして入力すると大いにありえる。ははは。WindowsXPでは、とりあえず、ポインタを進めてくれる。というか、ころころ仕様を変えないでほしい。

サロゲートペアについては、最新のVistaでも、2000とXP同様、サロゲートは2ワードで1文字を表すが、1ワード分しかポインタを進めてくれないらしい。合掌。

« まったりとテスト | トップページ | Tab文字の展開 »

Windows」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1497665/39651907

この記事へのトラックバック一覧です: CharPrevWとCharNextW:

« まったりとテスト | トップページ | Tab文字の展開 »

自作ソフトウェア

無料ブログはココログ

メモ