gpt4 book ai didi

c++ - 无法在 C++ 应用程序中导入 dll

转载 作者:行者123 更新时间:2023-11-27 23:25:05 24 4
gpt4 key购买 nike

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

最佳答案

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

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

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

关于c++ - 无法在 C++ 应用程序中导入 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10031875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com