8

Windows XP SP2(32ビット)とWindows 7 64ビットの両方と互換性のあるシェル拡張機能(コンテキストメニューハンドラー)を開発したいと思います。

64ビットWindowsで32ビットシェル拡張機能を実行することは可能ですか、それともWindows 7 64ビットで使用するためにシェル拡張機能を64ビットに移植/再構築する必要がありますか?

64ビットオペレーティングシステムで32ビットシェル拡張機能を使用する際の欠点/既知の問題はありますか?

32ビットアプリは64ビットWindowsで問題なく動作しますが、シェル拡張についてはよくわかりません。私の理解が正しければ、シェル拡張はエクスプローラープロセスに読み込まれるインプロセスCOMサーバーであり、64ビットである必要があります。 64ビットWindowsのビットプロセス...または64ビットOSで実行されている32ビットシェル拡張機能に提供される「32ビットエミュレーション」の形式ですか?

4

3 に答える 3

10

シェル拡張は単なるDLLであり、ルールでは、32ビットアプリケーションは32ビットDLLのみをロードでき、64ビットアプリケーションは64ビットDLLのみをロードできます。これを回避する方法はありません。

32ビットシェル拡張は、シェル拡張をロードする32ビットサードパーティアプリケーションが機能することを意味するため、64ビットシステムでも引き続き役立つ場合があります。たとえば、TortoiseSVNには32ビットバージョンと64ビットバージョンの両方が付属してインストールされているため、64ビットWindowsでも、32ビットアプリケーション(サードパーティのファイルマネージャーなど)からTortoiseSVNコンテキストメニューにアクセスできます。

ただし、Explorer自体は64ビットWindowsでは64ビットネイティブであるため、Explorerで機能させるには、64ビットバージョンの拡張機能が必要です。

于 2012-12-07T02:26:39.073 に答える
0

シェル拡張はCOMコンポーネントです。アウトプロセスサーバーとしてインストールする場合は、Windows(DCOM)が32<->64ビットのマーシャリングをすべて処理する必要があります。

MIDLコンパイラは、処理中にロードされる64ビットスタブを作成します。

于 2012-12-07T02:33:00.157 に答える
0

64ビットWindowsのxplorer²のような32ビットエクスプローラーを使用できます。コンテンツの検索、データのプレビュー、およびコンテキストメニューにも表示される32ビットDLL拡張機能を処理できます。組み込みのエクスプローラーは64ビットであり、32ビットの拡張機能を無視します。

于 2016-12-02T08:03:24.100 に答える