2012-04-05 3 views
0

나는 hecom32.dll이라는 DLL이 있습니다. 내 응용 프로그램에서 이것을 사용하고 싶습니다. 나는 다음과 같은 ACLL :C++ 응용 프로그램에서 캔트 가져 오기 dll

#import "hecom32.dll" 

그리고 나는 다음과 같은 오류가 발생합니다 :

enter Error 1 error C1083: Cannot open type library file: 'c:\users\dvargo\documents\visual studio 2010\projects\johnny\johnny\hecom32.dll': Error loading type library/DLL. c:\users\dvargo\documents\visual studio 2010\projects\johnny\johnny\johnny.cpp 6 1 Johnny 

은 분명히 그것을 추가 기운 다. 나는 무엇이 잘못되었는지를 결정하는 것은 확실하지 않습니다. 파일을 분석하여 가져올 수없는 이유를 확인할 수있는 방법이 있습니까? dll에서 함수를 사용하는 다른 방법이 있습니까?

내가 hecom32.dll는 COM 서버를 구현하고 리소스로 포함 된 형식 라이브러리가있는 경우에만이 제대로 작동 비주얼 스튜디오 2010

+0

DLL과 같은 소리에는 형식 라이브러리가 없습니다. –

+0

http://msdn.microsoft.com/en-us/library/et4zwx34%28v=vs.80%29.aspx – selalerer

답변

4

을 사용하고 있습니다. File + Open + File에서 dll을 선택했는지 확인할 수 있습니다. 자원을 나열하면 노드를 열면 자원 ID가 1 인 "TYPELIB"레이블이 있어야합니다.

오류 메시지가 누락되었습니다. 형식 라이브러리 포함은 규칙이므로 필수는 아닙니다. .tlb 파일로 분리하여 보관하는 것도 가능합니다. 물론 COM 서버가 아닐 수도 있습니다. DLL에서 Dumpbin.exe/exports를 실행하면이 사실을 알 수 있습니다. COM 서버에는 적어도 "DllGetClassObject"라는 이름의 내보내기가 있습니다.

이 중 아무 것도 출력되지 않으면 DLL 소유자에게 문의하여 DLL 사용 방법에 대한 도움을받는 것이 좋습니다. 일반적으로 내 보낸 함수 및 .lib 파일의 선언이있는 .h 파일이 있어야 링크 할 수 있습니다.

+0

도움 주셔서 감사합니다. 그것은 별도의 .tlb 파일에 보관하는 경우, 그것은 동일한 이름을 가지고 있을까요? – user489041

+0

반드시 그런 것은 아닙니다. 이것은 소유자가 문서화합니다. 최소한 설명서가 있습니까? –

+0

독일어로되어 있습니다. (지금은 처음 제안을 시도했지만 TYPELIB가없는 것 같습니다. – user489041

관련 문제