을 인스턴스화하는 중 오류가 발생했습니다. 현재 만든 간단한 시스템에서 COM DLL을 사용하려고 애 쓰고 있습니다. 모든 것이 성공적으로 컴파일되지만, 런타임에는 CoCreateInstace가 S_OK를 반환하지만, 어쨌든 내 객체 포인터가 NULL을 반환합니다.COM 개체
이 인터페이스 포인터는 내 클래스 헤더에 만들어집니다. 가장 이상한 점은 메서드 스택에 같은 포인터 유형을 인스턴스화하면 올바른 개체가 만들어 지지만 BASE com 클래스를 만들려고하면 __hook을 호출하면 액세스 위반이 발생한다는 것입니다.
도움이 될 수있는 몇 가지 다른 측면
: CoInitalizeEx로 프로그램을 실행하려고이 COINIT_MULTITHREADED 및 COINIT_APARTMENTTHREADED
프로젝트로 시작은 그 안에 COM DLL을 사용하는 DLL입니다
새 스레드를 시작하지 않고 동일한 방법을 시도했지만 오류가 지속됩니다.
테스트 프로그램 (스레드가없고 실행 가능)을 만들었으며 개체가 정상적으로 만들어지고 올바르게 연결되었습니다. 그래서 내 추측 그것은 DLL 자체 또는 관련 스레드와 관련이 있습니다.
추 신 : 보너스 질문으로, Google에서 COM과 관련된 유리한 것을 반환하지 않는 이유는 무엇입니까? :)
이 방법은 내가 만든 샘플 앱도 실패하게 만들 것이므로 그렇게 생각하지 않습니다. –