use*_*041 0 c++ dll visual-studio-2010
我有一个名为hecom32.dll. 我想在我的应用程序中使用它。我调用以下内容:
#import "hecom32.dll"
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
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
Run Code Online (Sandbox Code Playgroud)
显然它不能添加它。但是,我不确定要确定它有什么问题。有什么方法可以分析文件以查看为什么无法导入它。是否有不同的方式来使用 dll 中的函数?
我正在使用 Visual Studio 2010
只有当 hecom32.dll 实现 COM 服务器并将类型库作为资源嵌入时,这才能正常工作。您可以使用 File + Open + File 检查,选择 dll。您将看到列出的资源,如果您打开该节点,应该有一个标记为“TYPELIB”且资源 ID 为 1 的资源。
当然,这是缺失的,错误消息说明了同样的内容。嵌入类型库是一种约定,不是必需的。也可以将其作为 .tlb 文件单独保存。当然,它可能根本就不是 COM 服务器。您可以通过在 dll 上运行 Dumpbin.exe /exports 来查看。COM 服务器至少有一个名为“DllGetClassObject”的导出。
如果这些都不成功,那么您最好联系 DLL 的所有者并寻求有关如何正确使用它的帮助。这通常需要一个带有导出函数声明的 .h 文件和一个 .lib 文件,以便您可以链接它。
| 归档时间: |
|
| 查看次数: |
1371 次 |
| 最近记录: |