2012-02-17 5 views
1

C#으로 작성된 COM 개체를 사용합니다. 나는 단지 "new"를 통해 인스턴스를 생성한다. 그러한 대상이 많이 필요합니다. 그러나 다른 모든 "새"는 새 인스턴스를 만들지 않지만 첫 번째 개체에 대한 참조 만 제공합니다. 그게 왜 내가 데이터가 엉망이 됐는지. 매번 새로운 인스턴스를 얻을 수 있습니까? 아니면 COM에서 IClassFactory가 싱글 톤이 아니라 인스턴스화해야한다는 것을 알아야합니까? VC와 ATL을 함께 사용하여 COM과 마스터를 만들었습니다. 그리고 나는 IClassFactory를 어디에서 어떻게 구현할 지 문제가 있습니다.다중 인스턴스 COM 개체

+0

당신은 특별한 아무것도하지 않는 기본 동작은 다음 세 가지 기사는 이후에있는 거의 모든 것을 포함해야한다 클래스 팩토리와. C++은 어떻게 든 부러졌으며, "올바르게 작동하지 않습니다"라는 질문에서 잘못한 것을 추측하기가 어렵습니다. –

+0

나는 오래된 C++ dll에서 COM을 만들었습니다. COM의 다른 인스턴스의 메서드를 호출하여 데이터가 항상 변경되는 전역 개체가 있습니다. COM 개체가 해당 전역 개체를 공유 할 수 있습니까? – plax

답변

1

IUnknown, IClassFactory을 구현해야합니다. 수행중인 작업에 따라 IDispatchIErrorInfo도 구현할 수 있습니다. 꽤 관련되어 있으므로 여기에 자세히 설명하지 않겠습니다. 새로운 고유의 객체를 얻기

  1. Step by Step COM Tutorial
  2. Understanding Classic COM Interoperability With .NET Applications
  3. Fundamentals of ATL COM Objects
+0

고마워요! 하나 더 조정했습니다. 나는 오래된 C++ dll에서 COM을 만들었습니다. COM의 다른 인스턴스의 메서드를 호출하여 데이터가 항상 변경되는 전역 개체가 있습니다. COM 개체가 해당 전역 개체를 공유 할 수 있습니까? – plax

+0

@plax이 주석을 별도의 질문으로 만들어야하지만, 내 머리 꼭대기에서 공유 메모리를 사용하여 보길 원할 수 있습니다. 명명 된 공유 메모리 만들기를 참조하십시오. http://msdn.microsoft.com/en-us/library/windows/desktop/aa366551(v=vs.85).aspx – JamieSee