오후 2:36 00-02-08
조경민
ATL 객체포인터 참조하기
-----------------------------------------------------------------------

.... Reader.h .....
class ATL_NO_VTABLE CReader :
        public CComObjectRootEx<CComMultiThreadModel>,
        public CComCoClass<CReader, &CLSID_Reader>,
        public ISupportErrorInfo,
        public IConnectionPointContainerImpl<CReader>,
        public IDispatchImpl<IReader, &IID_IReader, &LIBID_CARDREADERLib>
{
의 클래스를 참조 하고 싶어서
다른 클래스에서 CReader* pReader를 한 후
#include "Reader.h" 를 했더니
CLSID_Reader 같은 것들이 안 정의되어 있다고 에러가 난다.

[해결 방법]

#include "CardReader.h"
#include "Reader.h"
처럼 인터페이스 프록시 클래스 헤더위에 External 로 생기게 되는
CardReader.h를 포함시키면 된다.

그러나, 만일 다른 클래스 객체가 m_pReader->Method()를 호출할때
이 클래스 객체의 코드가 두번째 쓰레드(다른스레드)라면 문제가 된다.
사실 문제는 안되는데 Method가 Fire_OnConnect()같이 이벤트 함수라면
문제가 된다. ( 이 컴포넌트를 VB에서 할때 F5로 디버깅으로 실행하면
에러는 안나는데 빌드컴파일후 exe를 실행하면 에러가 난다. )
-> 해결방법
ATLCOM두번째 스레드 이벤트 Fire.txt를 참조하라

'KB > MFC/Win32' 카테고리의 다른 글

ATLCOM 객체에서 두번째 스레드에서 Fire하기 에러  (0) 2004.03.19
ATL COM 반환값 만들기  (0) 2004.03.19
argv 얻어오기  (0) 2004.03.19
탭 & 프로퍼티 쉬트 쓰기  (0) 2004.03.19
콤보 박스  (0) 2004.03.19

+ Recent posts