64 ビット アプリケーションから 32 ビット COM オブジェクトを作成しようとしています。
私は呼び出しで使用CLSCTX_LOCAL_SERVER
し、DllHost でサーバーをホストするように COM に指示するためにレジストリ キーにCoCreateInstance
空のキーを追加しましたDllSurrogate
。昇格したプロンプトからAppId
呼び出してプロキシを登録しましたが、エラーはありません。regsvr32 myproxy.dll
また、レジストリProxyStubClsid32
の 64 ビット部分にインターフェイスのキーがあることがわかります。
私はこのように呼び出しますCoCreateInstance
:
CComPtr<IMyObj> myobj;
HRESULT hr = myobj.CoCreateInstance(CLSID_MyObj, NULL, CLSCTX_LOCAL_SERVER);
これは私の開発マシンで実際に動作します。プロキシ DLL がロードされていることを VS で確認できます。しかし、私がテストしているマシンではありません。したがって、構成の問題です。
コンポーネントが適切に登録されていることを示す をリクエストすると、 がCoCreateInstance
返されることに注意してください。S_OK
IUnknown
COM にプロキシ DLL をロードさせるにはどうすればよいですか?