prasinos' work memo

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

今時分は4時でもう明るくなるのね

もう寝ましょう。
スポンサーサイト

facebook に登録した

出身大学からお誘いが来たので登録した。われながらすごいミーハーである。

遅い (;_;)

承前。動かしてみたら、遅い。

絶望的に遅い。たぶん稼働時間3倍くらいいってる。

プロファイリングしてみるまでもなく、UTF-8→ 16LE 変換が重過ぎるのでしょう。

安易にとれる方策は、16LEの変換結果をキャッシュすることだけど、明らかに CP 操作では2つのファイル名を交互に使用するので、キャッシュバッファは2つ用意しなければならない。めんどうだなあ。

もう一つやるとすれば、やっぱり char を TCHAR にするしかない。せっかく上位ロジックをポータブルに作ったのにブチコワシ。

うーん。どうしようかなあ。

デバグ

承前デバグしたよ。 コマンドライン引数の漢字をUTF8にするのを忘れていました。

xcp.exe Unicode 対応版

承前。

そういうわけでできました。こんどは日本語・ドイツ語・アラビア語の混在したディレクトリでもばっちりコピーできます。

WideCharToMultiByte がいつのまにか UTF-8 をサポートしている件

承前。Windows の Unicode API を使ってファイル操作を行うとする。するというと、文字は WCHAR の配列ということになるが、すでに char の配列を想定してプログラムを作ってしまったので、ファイル名の型がいろいろとなりうるというのはブチコワシである。

そこで、ふつー思いつくのは UTF-8 だよね?

自分でエンコーダを作ろうかとも思ったのであるが、ふと MSDN 見ると、なんと WideCharToMultiByte が UTF-8 をサポートしている。やるじゃないか、マイクロソフト。なんていいやつになったんだ...。

ただし、これが CE ではサポートされない、と書いているのは、いいかえると Windows95 からサポートされていたということになるんだが、一体本当だろうか? 今となっては試すこともできない。

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。