COM2 Visual C++ 2005 CRT DLL 버전 충돌 문제 VS2005 CRT DLL(msvcp80.dll, msvcr80.dll)을 사용하는 COM 모듈을 개발할 때 설치 대상 PC에 .NET 2.0 SP1이나 .NET 3.0 SP1이 설치되어 있는 경우 COM 등록 시에 로드하는 CRT DLL 버전 8.0.50727.762를 side by side assemblies 기능에서 자동으로 8.0.50727.1433으로 리다이렉트해준다. 문제는 1433 버전으로 작동하는 경우 COM 등록이 안 되는 등의 에러가 발생한다. Isolated COM이나 Per-application Configuration(Windows XP, Windows Vista)으로도 해결할 수 있지만 가장 간단한 방법은 Private Assemblies로 항상 762 버전을 사용하도록 하는 것.. 2008. 9. 30. COM 인터페이스 포인터를 서로 다른 Apartment로 전달하기 멀티쓰레드 환경에서 COM을 사용할 때 서로 다른 쓰레드 간에 인터페이스 포인터를 넘겨서 사용하는 경우가 있을 수 있습니다. 이 때 Apartment Threaded인 경우 문제가 생깁니다. 서로 다른 Apartment로 인터페이스 포인터를 넘겨야 하는데 문제가 발생하는 경우가 있습니다. 이런 경우 Global Interface Table(GIT)을 사용하면 됩니다. 다음은 MS 기술자료(http://support.microsoft.com/kb/601770/ko)에 나와 있는 GIT 사용 단계입니다. 1. GIT 인스턴스를 생성합니다. IGlobalInterfaceTable *pGIT = NULL; ::CoCreateInstance (CLSID_StdGlobalInterfaceTable, NULL, CL.. 2007. 6. 27. 이전 1 다음