2012-12-16 1 views
0

누락 된 COM 인터페이스 X을 찾고 있는데 Y.dll에 정의되어 있습니다.무엇이 들어 있는지 dll을 탐색 할 수없는 이유는 무엇입니까? : "일부 구성 요소를 탐색 할 수 없습니다"

grep X Y.dll 

"이 일치"라고 말하는이 추정 인터페이스를 들여다 볼 수 있습니다. 만세, 혐의가 확인 됐어!

아쉽게도 Visual Studio Express에서 Object Browser를 사용하여 Y.dll을 사용자 지정 구성 요소 세트에 추가하려고하면 팝업 창에 "일부 구성 요소를 탐색 할 수 없습니다"라는 오류 메시지가 나타납니다.

그래서이 DLL을 탐색 할 수없는 이유는 무엇입니까? COM 인터페이스가 고의적으로 또는 실수로 보호, 숨김, 보안 또는 불분명 할 수 있습니까? 분명히 입문서가 필요합니다! 공식적으로

Microsoft는이에 대해 알고있는 모든 통찰력의 일반적없는 것 같다 :

진심

This error generally occurs when you attempt to add a file type that does not support object browsing, such as .htm and .txt files, in the Component Selector dialog box. The Object Browser supports file types such as .bsc, .olb, .tlb, .dll, .exe, and .ocx.

, 오브젝트 브라우징을 지원하지 않는 DLL 또는 EXE에 대한 이유는 무엇인가? 튜토리얼이나 책에 대한 모든 포인터는이 초보자에게 감사 할 것입니다! 감사.

답변

1

COM 개체 브라우저는 COM 서버 (dll, exe, ocx 등)에 의해 metadata (type libraries) exported에 의존합니다.

문제는 COM 서버가 인터페이스를 구현하는 데 필요한 메타 데이터를 내 보내지 않아도된다는 점입니다. 불행하게도 꽤 많은 서버가 있다는 것을 알았습니다. 그래서 어떤 CoClasses, Interfaces 등이 다른 방법으로 지원되는지 알아야합니다. 이 도움이

COM typelib resource

희망 :

확인은 COM 서버 (y.dll)는 유사 "TYPELIB"이라는 자원을 포함하는 경우.

+0

우수한 응답 (그러나 행운은 없습니다 ...). 감사! –