杉山利幸の公開日誌 2008年4月分

2008年5月分

2008/04/26 サブマシンをメインマシンにすることにしました
2008/04/12 64 bit 対応は暫く中断することにしました
2008/04/05 WOW64の致命的な問題点


2008/04/26 サブマシンをメインマシンにすることにしました

ここで 64 bit 対応のサブマシン(sug02)を作ろうと思い、実際ここで作りました。次のメインマシン(sug03)は Core 2 Duo 3.2GHz以上が 25000円以下になった頃にと思っていたのですが、ここを見るとそれに該当するのが E8600 で、今年の後半でないと無理そうなことがわかりました。

現在サブマシン(sug02)の方が今のメインマシン(sug01)より性能が良く当分新しいメインマシン(sug03)を作らないことにしたのと、64 bit 対応を中断したことを合わせて、今のサブマシン(sug02)をメインマシンとしてしまうことにしました。

詳しいことは次回から。

27日少々修正


2008/04/12 64 bit 対応は暫く中断することにしました

ここの RegEnumKeyEx が書いてある辺りに以下のようなことが書いてありました。

there is currently no way to find these keys in an x86 app via
enumerating (RegEnumKeyEx). 

(中略)

You might think that you can enumerate the whole 64-bit registry
from an x86 app by using the KEY_WOW64_64KEY flag.
But this is also not possible due to other "features", see 

Because these keys are handled differently (via IsExemptRedirectedKey),
it makes no sense to open these keys with KEY_WOW64_64KEY or
KEY_WOW64_32KEY. The flags are simply ignored. 

これにより、少なくとも a! Reg Analyzer に関しては、今の環境ではどうあがいても 64 bit 対応をすることは出来ないという結論に達しました。

すべての作者作成ソフトの 64 bit 対応をすることは出来ない。一部は何らかの形で 64 bit バイナリーを作成しないといけない。ということがわかりましたので、64 bit 対応は一時中断します。

暫くは、64 bit 対応でついでに付けた機能の公開をしていくことにします。


2008/04/05 WOW64の致命的な問題点

64 bit 対応のためにサブマシンを作成したのですが、作者のソフトをWOW64上で動かす点に関して致命的ともいえる問題が発生しています。

1.Context Menu Handler 等が作成できない。

Context Menu Handler というのは、ファイルアイコンを右クリックしたときのコンテキストメニューを制御する機能ですが、ここを見ると、どうやら技術的に不可能なようです。作者のソフトの中では DLL を公開しているソフトがその機能を使っています。32 bit と 64 bit の DLL が混在できないことはわかっていますが、これが出来ないとなると、32 bit との互換性において結構大きな問題となります。

2. HKEY_CLASSES_ROOT の 64 bit でのキーの列挙がうまくいかない

	HKEY hKey;
	RegOpenKeyEx(HKEY_CLASSES_ROOT, "", 0,
		KEY_QUERY_VALUE|KEY_ENUMERATE_SUB_KEYS|KEY_WOW64_64KEY, &hKey);
	for ( int i = 0 ; ; i++ ){
		char Name[MAX_NAME];
		DWORD l = MAX_NAME;
		int r = RegEnumKeyEx(hKey, i, Name, &l, NULL, NULL, NULL, NULL);
		if ( r == ERROR_NO_MORE_ITEMS ) break;
		if ( r != ERROR_SUCCESS ) break;
		Name の登録;}
	RegCloseKey(hKey);

上記で列挙されるキー名リストがレジストリーエディタのそれと異なっています。32 bit のキーも混在していて、オープンチェックをして除いてみても微妙に異なります。

これらの問題により、作者のソフトの 64 bit 対応は My Pasokon Memo を除いてやめてしまうかもしれません。何か知っている方は教えてください。My Pasokon Memo はそれなりの価値もあるので、そのままにしておきます。


2008年3月分

戻る