c++ - 如何在 C++ 中使用 DLL

标签 c++ dll

我需要使用 DLL 编写 C++ 程序。我有 DLL 和头文件,但没有链接器的 .a 文件。 GNU GCC 编译器无法找到 DLL 文件中的函数。

我收到如下错误:

    undefined reference to _imp__mbnEthernetOpen@8

如何解决这个问题。

最佳答案

看起来您正在尝试编译一个依赖于另一个共享库的程序。要在 Windows 上编译支持此库,您通常需要 3 件事:

  • 头文件
  • 用于编译时链接的 lib 二进制文件
  • 用于运行时执行的 dll 二进制文件(必须位于二进制文件的路径中) 在运行时找到并加载)可选如果您静态链接 .lib 文件

您在评论中说您拥有的只是头文件和 dll 文件。这意味着您要么缺少 lib 二进制文件,需要查找/重新编译该库,要么您尝试在运行时动态加载 DLL 并使用函数指针来调用不同的函数(正如 Goksel 在他的回答中提到的那样)。您的错误表明您正在尝试执行第一个选项(链接到共享库)。

如果要在编译时动态链接到库,则需要拥有 lib 文件。

关于c++ - 如何在 C++ 中使用 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18447020/

相关文章:

c++ - 如何实现这种按位操作?

c++ - 如何在另一台计算机上使用我的项目

c++ - CMake FetchContent 不复制库

c++ - 使用 C/C++ DLL header 构建构建 C 应用程序时出现语法错误 C2059

c++ - QT 队列触发连接

java - java中简单的stdin读取

c++ - Qt - 帮助链接动态库

Python Ctypes - 加载 dll 抛出 OSError : [WinError 193] %1 is not a valid Win32 application

c# - 创建简单的 c++.net 包装器。一步步

c++ - Kernel32.dll 头信息