我有一个文件foo.h
有各种函数声明。所有这些功能都在一个文件中实现foo.dll
。但是,当我包含 .h 文件并尝试使用任何函数时,我收到错误:
bar.obj : error LNK2019: unresolved external symbol SomeFunction
所以显然没有找到函数实现。
我需要做什么才能帮助编译器找到 DLL 中的定义并将它们与 .h 文件关联起来?
我看过一些关于__declspec(dllexport)
and __declspec(dllimport)
但我仍然不知道如何使用它们。
您应该至少收到three来自 DLL 所有者的文件。您在运行时需要的 DLL、带有导出函数声明的 .h 文件,您已经拥有了。还有一个 .lib 文件,即 DLL 的导入库。链接器需要它,以便知道如何将函数添加到程序的导入表中。
您缺少告诉链接器需要链接 .lib 文件的步骤。需要将其添加到项目的链接器的“输入+附加依赖项”设置中。或者最容易通过在源代码中编写链接器指令来完成:
#include "foo.h"
#pragma comment(lib, "foo.lib")
这适用于 MSVC,否则不可移植,但链接永远不会。将 .lib 文件复制到项目目录或指定完整路径。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)