喉に刺さった小骨のように気になっていた、NT系における、メインウィンドウのUNICODE化が終了(これで、UNICODEでしか表現できないファイル名を持つファイルも直接ドラッグ&ドロップ可能に)。ということで、v1.10リリース。
なお、単一バイナリで、UNICODE に対応した OS(NT系)では UNICODE モードで動作させ、そうでない OS(Win95系)では、ANSI モードで動作させるには、OS 種類によって、UNICODE/ANSI API を自動的に使い分ける必要がある。(正確には、Win95系は描画系の一部(と文字列操作)のみ UNICODE API 使用可、ファイル系API などは全滅)
だが、ソースコードのあちこちに、
などと書いていくのは、悪夢に近い。
そこで、FastCopy では、Win32API UNICODE/ANSI のうち、文字列を引数や構造体メンバにとっているものについて、WCHAR/CHAR * -> void * に置き換えた、関数ポインタ群を大量に作った上で、パス名は基本的に void * で管理することで凌ぐことに。イメージとしてはこんな感じ。
(詳細はソースコード参照のこと)
これはこれで、文字列に対する型チェックがややルーズになることと、文字列定数を作るのが少し面倒になるデメリットはあるのだが、ロジック部分の記述がスッキリするメリットに比べれば、まあ我慢できるレベルかな。
Categories
Android |
CeSleep |
comp_misc |
comp_tips |
fastcopy |
ipmsg |
mailman |
misc |
npop |
ScheEdit |
sigsleep |
tdiary |
thinkpad