HOME IP Messenger FastCopy Tech-memo Diary 作者Twitter
SHIROUZU Personal Log

2005-05-03

_ [fastcopy] その55

喉に刺さった小骨のように気になっていた、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 * で管理することで凌ぐことに。イメージとしてはこんな感じ。

(詳細はソースコード参照のこと)

これはこれで、文字列に対する型チェックがややルーズになることと、文字列定数を作るのが少し面倒になるデメリットはあるのだが、ロジック部分の記述がスッキリするメリットに比べれば、まあ我慢できるレベルかな。


2004|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|08|09|11|
2007|01|02|03|04|05|06|07|08|09|10|12|
2008|01|02|03|06|07|08|11|
2009|01|03|04|05|06|07|08|10|12|
2010|04|05|07|08|09|11|
2011|02|03|04|05|06|07|08|12|
2012|02|04|06|11|
2013|06|09|
2014|04|05|06|07|08|09|
2015|02|04|05|06|07|08|09|10|11|12|
2016|01|03|04|06|07|08|09|10|11|12|
2017|01|02|03|06|07|08|09|11|12|
2018|01|02|05|06|07|10|
2019|06|

Web shirouzu.jp

Categories
Android | CeSleep | comp_misc | comp_tips | fastcopy | ipmsg | mailman | misc | npop | ScheEdit | sigsleep | tdiary | thinkpad