スポンサーリンク

32bitのCOMを64bit環境から使うためのDLLサロゲートの設定

How to use 32-bit COMponents of Intelligent Converters in 64-bit environment

情報源: How to use 32bit COMponents in 64bit environment

古の呪文。

  1. 目的のCOMをHKey_Classes_Root\Wow6432Node\CLSID[GUID]から見つける
  2. 見つかったら、新しいREG_SZ(文字列)値を追加します。名前はAppIDでなければならず、データは検索したCOMオブジェクトGUIDと同じでなければなりません
  3. HKey_Classes_Root\Wow6432Node\AppID\の下に新しいキーを追加します。新しいキーは、COMオブジェクトのGUIDと同じ名前で呼び出す必要があります。
  4. 追加した新しいキーの下に、新しいREG_SZ(文字列)値を追加し、DllSurrogateと呼びます。値を空のままにします。
  5. HKey_Local_Machine\Software\Classes\AppID\の下に新しいキーを作成します。この場合も、新しいキーはCOMオブジェクトのGUIDと同じ名前で呼び出す必要があります。このキーの下に値を追加する必要はありません。

このレジストリ設定だけでCOM(COM+)のサービスがよろしくやってくれる。

技術的な解説:(2020/12/21)追記

Accessing 32-bit DLLs from 64-bit code | Reflections on IT

逆で、x86のプロセスからx64のCOMを呼び出したい場合:(2020/12/21)追記

Using 64-bit DLLs in 32-bit Processes with Out-of-process COM – CodeProject

コメント

  1. […] (もしかしたら、64bit版のAHKを使ってるせいもあるかも。32bitのCOMを64bitで使うときはDLLサロゲートの設定とかいうものがいるらしいと聞くんで。まあ、wscriptをShellRunで叩くようにするとこ […]

タイトルとURLをコピーしました