aimemonが64bitアプリに反応しない……というレポートをもらい、先延ばしに出来なくなったので、64bit(x64)対応しました。
以下、修正点を説明します。
64bit対応 (x64) §
旧aimemonが64bitアプリに反応しないのは、32bitのフックDLLが64bitアプリのメッセージを掴まえられないからです。
一方、単純にaimemonを64bitアプリにすると、今度は32bitアプリのメッセージを掴まえられません。
まず、32bitアプリなど使わないよ……という純64bit主義者向けに、上記のような64bitバージョンを作成しました。(5~10年もすれば、たいていのユーザーはこれで用が足りるようになるはず)
その後、64bitのフックDLLを読み込むだけのヘルパ・アプリを作成しました。
32bit版+ヘルパの組み合わせだと、32/64の双方のフックDLLが常駐してメッセージを監視できます。しかし、実際に表示される虹色枠は、32bit版本来が表示する1つだけとなります。
つまり、今回のaimemonには以下の3種類の使い方があります。
- 32bit版
- 64bit版
- 32bit版+64bitヘルパ (32/64双方に反応)
ちなみに、32bit版+64bitヘルパの場合、通知領域に2つのアイコンが表示されます。
アイコンはあらためて作り直しました。一応、32bit版は"3"が、64bit版は"6"が、64bitヘルパは"H"と"6"がデザインに織り込まれています。
エラーではないのに通知領域に登録失敗してしまう場合の対策 §
これはまだ完全に確定的ではありません。
たまにしか再現しないので。
感想・64bit開発 §
まだ簡単ではないですね。
Visual Studio 2005で64bit開発(C++&生API)は、いろいろと手間が掛かります。
しかも、32/64混在だと、いろいろと混乱も起きます。意味不明の挙動に悩まされた回数は数知れず。とりあえず、64bitを意識するなら、C#で書く方が楽でしょう。
あるいは、次のバージョンのVisual Studioを期待してもいいのかな?