2010-06-10 4 views
1

VC++ 2005에서 ATL COM 서버를 만들었습니다. 일부 라이브러리 (* .olb)에 정의 된 일부 인터페이스를 구현하고 싶습니다. #if olb (.tlh.tli)를 가져 오면 # 인터페이스를 볼 수 있습니다. 하지만이 인터페이스는 "인터페이스"목록 ("레지스트리"및 "파일"옵션 모두)에 없기 때문에 인터페이스 구현 마법사로 인터페이스에 대한 스텁 구현을 만들 수 없습니다. 왜 그런 상황이 가능할까요? 그리고 어떻게 자동으로 스텁 구현을 생성합니까? 미리 감사드립니다.ATL "구현 인터페이스 마법사"

답변

0

프로젝트에 버그가 있습니다. 그것은 도서관을 망친 것입니다.

1

당신은의 .idl 파일을 편집하고 그러나 어색

[ 
    ... 
] 
library Something 
{ 
    importlib("somelibrary.olb"); 
    ... 
} 

에서, importlib 문을 라이브러리 블록 내부에 표시되어야 사용할 수 있습니다. 형식 라이브러리에 coclass 정의가 포함되어 있기 때문에 필요합니다.

정말로 원하는 것은 import 문을 사용하여 형식 라이브러리를 만든 IDL을 가져 오는 것입니다. coclasses는 빼고. IDL이 없으면 OleView.exe, File + View Typelib을 사용하여 IDL을 다시 만들 수 있습니다. 자신의 .idl 파일에 원하는 인터페이스 정의를 복사하여 붙여 넣은 다음 IDL에서 import MIDL 문을 사용하십시오.

+0

프로젝트에 버그가 있습니다. 그것은 도서관을 망친 것입니다. 어쨌든, 감사합니다. 난 정말 좋아. –