« ファイル名に出来ない文字をエスケープ | メイン | エラーコードを調べる »

2008年01月09日

ツール開発メモ:: ICU を使う

    

mlang を動的リンクして使ったら、なぜかリリースビルドで読み込みや書き込みのアクセス違反が出た。
以前は、インポートライブラリを使っていて、特に問題なく動いていたんだが。
と言うことで、ICU を使ってみることにした。

使い方は、ICUの文字コード変換を使いたいのですが... を見ればすぐにわかる。
無駄に動的リンクにしたが、mlang から 1.5時間程度で置きかえれたのですぐ。
後、Windows の Shift-JIS は、windows-31j になるので注意。
それと、変換時に最初のアドレスと、最後のアドレスを指定するが、\0 を含まずに指定しているので、長さを指定しないで std::wstring などに入れるとごみが入る。
その点注意。
まあ、たいしたことじゃないけど、初めミスってて化けた。

でも、よく考えたら、euc-jp 使わないので、WideCharToMultiByte と MultiByteToWideChar でなんとかなった。
icudt38.dll が 10MB とでかいので、結局使わないことになりそう。



投稿者 Takenori : 2008年01月09日 23:21




comments powered by Disqus
Total : Today : Yesterday : なかのひと