c++调用c++编写的DLL


调用dll有两种方式

方式一:初始化加载lib:http://wowoboke.com/cpp/6.html

方式二:windowAPI动态加载dll:http://wowoboke.com/cpp/7.html

当使用c++调用c语言的dll时,如果使用方式一:#pragma comment(lib,"xxxx.lib") 调用没有任何问题

但是使用方式二:windowAPI这种初始化就加载的方式来调用就会报错

原因是 GetProcAddress()是通过函数的名字来找函数地址

而c++编写的dll函数名字都是这样的:

image.png

而我们直接写myfunAdd这样的函数名定找不到

解决的其中一个办法就是复制编译后的函数名来使用,代码如下:

GetProcAddress(hModule, "?myfunAdd@@YAHHH@Z");

编译后的函数名可以用 Depends 这个工具查看