ポチポチ再構築中です。オシャカになったのも何かの縁。設定等をAvestaぽくXMLで記述出来るように仕様を大幅変更中です。そのために、まずはXMLのAttribute属性を読むだけしか出来ない低脳いんちき偽パーサを拵えてます。MSXMLやexpatも考えてみたのですが、どうせ全機能の1万分の1も使わないはず。ならば。軽量化の観点からも偽パーサを書いた方が良いとの結論に至りました。…こうやって無責任に仕様を考えている時が一番楽しいです。
しばらくWindows2003を使っていて思いましたが、やはりVistaは作者にとって今一つです。MeからXPへ移行した時のような衝撃が無いのは仕方無いとしても、全体的にもっと高速化して欲しい。純粋に感動した点はメイリオの綺麗さ、そして「Documents and Settings」が「Users」のようにシンプルになっていた点ぐらいです。SPに期待といったところです。
VistaからWindows2003への移行は巧くいきました。この文章も2003上で編集しています。Vistaでは起動時に約580MB弱使用されていたメモリが、2003では不要なサービスを切って約180MBと実に軽快です。しばらくはコレでいきます。
しかし。移行に際してとんでもないことが起きました。実は当初、ドライバを焼いておくことを忘れて涙目でVistaを再インストールしたのですが、その時点で既に外付けディスクに退避しておいたファイルを「切り取り」で移行してしまっていたようなんですね。そして、既にファイル移行したことを忘れ、何事も無かったかのように2003インストール時にパーティションを割り当てなおしてしまいました。つまり。早い話。大量のファイルを失ってしまいましたぁ。勿論、特にDLLに膨大な修正を入れたDimのソースもです。モウ、アホカト。…まぁ、とりあえず。嘆いていても小人さんは来てくれそうにありませんし、もう一度自分で組むしかない訳ですが…申し訳御座いませんが、暫く開発停まります。「自力では解決出来ない問題が生じ、涙目で復旧する」という、面白いくらい前言通りの展開になってしまいました。大切なファイルのバックアップは冗長化すべし、ということを強く学んだ今日この頃です…。
自戒の念を込めて備忘録。DLLをLoadLibraryで動的に読み込み、使用後には即FreeLibraryする仕様を想定します。そして、DLL内での処理はCreateWindowExでウィンドウを生成し、適当にHelloWorldするものとします。
/* Application側 */
HMODULE hModule = LoadLibrary(_T("hoge.dll");
lpHoge = GetProcAddress("Hoge");
… 適当に処理 …
FreeLibrary(hModule);
/* DLL側 */
LRESULT CALLBACK Hoge()
{
RegisterClassEx(&wc);
CreateWindowEx(...);
}
この時、RegisterWindowExやCreateWindowExのhInstanceにEXE側のインスタンスをウッカリ利用していると、VistaではEXE側でFreeLibrary後に再度LoadLibraryをする、つまりEXE側のhInstanceで再度ウィンドウを生成すると落ちてしまうようです。作者のようなハイパー初心者には、何故、Windows2003までは大丈夫(お作法的にはNGかも知れませんが...)で、Vistaからは落ちてしまうようになったのかサッパリ理解出来ません(Vistaのキャッシュ機能というヤツでしょうか?)。…考察はさて置き。謎だった不具合の原因が分かって良かった。一件落着。
あと。丁度良く不具合も解消したところで、開発環境OSをWindows2003に変えようと検討中です。2003にドライバが対応してくれているか多少心配ですが、問題が起こらなければ2003に移行です。と言っても。この手の場合、自力では解決出来ない問題が生じ、涙目で復旧するのが作者のお約束ですが…。今回はどうなるか楽しみです。
Dimの本体とウィンドウの疎通が著しく調子悪いです。疎通仕様の設計を間違えた気がしてならない。
TOKKYさんてまだ作者のガラクタを覚えていて下さったのですね。正直かなり驚きです。しかも、Drag&Dropが出来ないとオカンムリなあたり、ウィンドウは表示出来たのかな。それとも、もうANSI版ではないのかな。とりあえず、Delayerでは何故表示出来なかったのか分からなかった(作者のMeと98無印では再現しなかった)ので、Dimではそうならぬようにしたいモノです。
そうそう。TOKKYさんに教えて頂いたfenrirは愛用中です。自分用ランチャーを拵えるだけの暇を確保出来ない状態が続いた結果、何時の間にやら馴染んできてます。でも。いずれは自分でキーボードランチャーを開発します。絶対。必ず。きっと。たぶん。できれば...。
Exciteさんに上げていた雑記をほぼ全て引き上げました。今見ると純粋に頭悪そうな事ばかり書いている上に、自分が如何に飽き性かを痛感させられます。しかし、それも通って来た道。恥ずかしくても、そのまま残して置くことにしました。そして。こんな辺鄙な場所へ何かに惹かれてお越し下さった奇特な方の、何かしらの期待に応えられるよう頑張ります。
WSH覚えて遊んだり、SQL Serverを立てて遊んだり、ローカルネットワークを構築して遊んだり、Virtual PCで仮想マシンを乱造して遊んだり、VistaのUACで遊んだりしていたら半年以上経ってしまいました。時の流れは早いですねぇ。
とりあえず、Vistaで遊ぶのにも飽きてきたので、そろそろDelayerの開発でもしようかと思ってます。本体の枠組みとウィンドウの一部だけが出来ているソースが転がっているので、これを改造していきます。
あと、このDelayerですが、やっぱり名前をDimに戻します。何故かと申しますと、微妙に長くて面倒臭いんですよ、タイプするのが…。
あと、今気付きましたが、作者が出没してからもう三年も経つのですね。早いなぁ。三年前と較べると技術は向上したものの、暇な時間が激減してしまいました。よく心を亡くすと書いて「忙しい」などと言いますし、作者も心を失わないよう気を付けていきたいと思います。もっとも、すでに亡くしてしまった心については、仕方ないのでとりあえず忘れる方針で。