2010-05-28 4 views
2

여러 COM 객체를 사용하는 C++ 응용 프로그램이 있습니다. COM 개체는 .NET 기반 (COM Interop 사용)입니다..NET COM 객체를 64 비트로 변환

애플리케이션을 64 비트로 마이그레이션해야합니다. 나는 특별히 64 비트가되는 C++ 애플리케이션이 필요하다. 모든 .NET COM 개체를 64 비트로 다시 컴파일하고 두 세트의 DLL (32 비트 및 64 비트)을 제공하고 싶지 않습니다.

조사 중이며 32 비트 COM Dll을 32 비트 대리 프로세스에서로드 할 수 있음을 발견했습니다 (레지스트리에서 DllSurrogate 사용). 그 방법을 알고 있지만 모든 COM 개체가 처리되지 않게된다는 것을 의미합니다. 는 C에서

는 ++ 나는 코드했다 : CoCreateInstance를 (무효 CLSID_SomeClass, NULL, CLSCTX_INPROC_SERVER, IID_SomeInterface, (**) & POBJ를);

CLSCTX_LOCAL_SERVER로 전환하고 DllSurrogate의 레지스트리 키를 추가하자마자 인터페이스를 찾을 수 없습니다 (오류 0x80004002). 레지스트리를 확인한 결과 .NET COM DLL이 등록되면 ClsID 레지스트리 키가 추가되지만 Interface 및 TypeLib 레지스트리 키는 추가되지 않습니다.

질문은 .NET COM 용 레지스트리 키를 만드는 방법입니다.

감사합니다, 빅터

+0

정확히 어떤 이유로 x64 비트 만 작동 시키려고합니까? –

답변

관련 문제