0

我有一个名为hecom32.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

4

1 回答 1

5

只有当 hecom32.dll 实现 COM 服务器并将类型库作为资源嵌入时,这才能正常工作。您可以使用 File + Open + File 进行检查,选择 dll。您将看到列出的资源,如果您打开节点,应该有一个标记为“TYPELIB”且资源 ID 为 1 的资源。

肯定是丢失了,错误消息说明了很多。嵌入类型库是一种约定,不是必需的。也可以将其单独保存为 .tlb 文件。当然,它可能根本就不是 COM 服务器。您可以通过在 dll 上运行 Dumpbin.exe /exports 来查看。COM 服务器至少有一个名为“DllGetClassObject”的导出。

如果这些都没有成功,那么您最好联系 DLL 的所有者并寻求有关如何正确使用它的帮助。这通常需要一个包含导出函数声明的 .h 文件和一个 .lib 文件,以便您可以链接它。

于 2012-04-05T16:02:15.530 回答