アーカイブ

2008年 4月 12日 のアーカイブ

かつて、Windows Vistaはコードネーム「Longhorn」などと呼ばれていた。
その頃の予定では、Vistaは.NETアプリを動作させるためのOSに変更され、
従来の非.NETアプリは仮想マシンのような互換モードでしか動作しなくなるはずだった。
ところが、.NETで出来ることはまだまだ少なく、Microsoftの計画は完全に破綻している。
今や、.NETはVBランタイムの後継でしかなく、高度なアプリは非.NETで作ることになる。

あたしはこの、Longhornの理想に乗っかって、いちはやく.NETでテキストエディタを作ったが、
.NETだけでは必要な機能を実装することが出来ず、非.NETコードが混じっていた。
この混合バイナリの状態で動作させるよりなら、全てを非.NETコードで書いた方が高速で動くらしく、
.NETを捨ててDelphiに移植したってのは、今の真魚2.xxだ。
ただし、Delphiは9x系の古いライブラリを引きずっているので、
NT系のOSでの動作を想定して何かを作るには面倒なところがあるので、
開発環境は、その時何を作りたいかで選ぶことになる。

真魚と一緒に動作させることを想定して作られたAdmenuは、あたしにとって必須アプリだが、
Delphiのシェルライブラリを全てユニコード化するのは困難と言うことで、
より簡単にできる.NETで作るようになり、真魚本体とは別配布となった。

で、その.NETで作ったAdMenuが、Vista(64bit版)で動作しなくて困っていた。
この度、自宅環境をVistaに完全移行するにあたり、これは必須アプリなのでなんとかするしかない。
C♯の無料版が、2008バージョンになり、.NETも3.5にして開発再開。

で、MSDNライブラリを見れば書いてあることだったのだが、
Vistaだけ、IDataObjectの扱いが違うので、Vista専用のバイナリを書き直して問題解決。
古いバイナリはVistaではうまく動作しないし、新しいのはVistaでしか動かない。
つーことは、配布する場合はVista用とXP用で別々にということになる。

Longhorn時代、.NETに移行すれば複数バイナリを用意しなくて良くなるはずだった。
こういう場合も、XP用とVista用と両方作る必要はなくなると言うことだった。
クロスプラットフォーム目的が大きい.NETなのに、まだこんな状態だもんな。

とはいえ、Vistaで.NETアプリを動作させるためのライブラリは充実してきた事はわかった。
そこは期待してる。