このスレを参考にしています
COM DLL の 32 ビット バージョンと 64 ビット バージョンの両方をインストールし、「自動選択」するにはどうすればよいですか?
私たちはまったく同じ状況にあります。同じプロジェクトからの同じ CLSID アプリ ID を持つ名前空間拡張 Dll 32 ビットおよび 64 ビット。これらの 2 つの Dll を登録すると、問題なく動作します。登録を解除すると、いくつかのエラーが発生します。最初の登録解除は機能しますが、2 番目は失敗します。Windows(?)はDllがすでに登録解除されていると考えていると思うので...
2 つの Dll には異なる CLSID やアプリ ID が必要ですか?
敬具、マイケル
編集: DllUnregisterServer の機能は次のとおりです。
STDAPI DllUnregisterServer(void){
_AtlModule.UpdateRegistryAppId(FALSE);
HRESULT hRes2 = _AtlModule.UnregisterServer(TRUE);
if (hRes2 != S_OK)
return hRes2;
AFX_MANAGE_STATE(_afxModuleAddrThis);
if (!COleObjectFactoryEx::UpdateRegistryAll(FALSE))
return ResultFromScode(SELFREG_E_CLASS);
return NOERROR;
}