2

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_OKIUnknown

COM にプロキシ DLL をロードさせるにはどうすればよいですか?

4

1 に答える 1