我有一个名为hecom32.dll
的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中的函数?
我正在使用Visual Studio 2010
答案 0 :(得分:4)
只有在hecom32.dll实现COM服务器并且将类型库嵌入为资源时,这才能正常工作。您可以使用File + Open + File检查,选择dll。您将看到列出的资源,如果您打开节点,应该有一个标记为“TYPELIB”的资源ID为1。
肯定会丢失,错误信息也是如此。嵌入类型库是一种约定,它不是必需的。只需将它作为.tlb文件保持独立即可。当然,它可能根本不是COM服务器。您可以通过在dll上运行Dumpbin.exe / exports来查看。 COM服务器至少有一个名为“DllGetClassObject”的导出。
如果这些都没有,那么您最好联系DLL的所有者,并寻求有关如何正确使用它的帮助。这通常需要一个带有导出函数声明的.h文件和一个.lib文件,以便你可以链接它。