【发布时间】:2014-08-07 20:30:18
【问题描述】:
有很多类似的问题,但我几乎已经做了所有的事情来解决这个问题,但似乎没有任何效果
我创建了一个简单的小 Dll。
声明:
void func_A()
void func_B()
还有一些其他的东西,我给了它一个 C++ 文件名,但它基本上只是 C 程序
我已经写好了.def文件
LIBRARY "myLib.dll"
EXPORTS
func_A @1
func_B @2
Dll 创建成功。
我已确保properties->linker->input->module definition file 中存在 .def 文件
我还检查了使用Dumpbin 导出的函数,到目前为止一切都很好
现在在客户端代码中,我写了类似的标题
extern "C" __declspec(dllimport) void func_A();
extern "C" __declspec(dllimport) void func_B();
确实满足编译器,
已将 .lib 和 .dll 从 DLL 项目复制到客户端项目,将 .lib 保留在生成 .obj 文件的位置,并将 .dll 保留在将生成 .exe 的位置。
但我得到LNK2019: unresolved external symbol 用于 dll 函数调用
我想我确信链接器找到了 .lib,因为如果我删除 Addition Library Dependencies 我会从链接器中得到 .lib file not found error。
由于没有任何效果,我也尝试在创建 .dll 时使用 __declspec(dllexport),但无济于事
【问题讨论】:
-
删除库依赖不能生成“找不到文件”错误。使用 dumpbin.exe 验证假设。
标签: c++ c windows dll static-linking