最近需要在我工程中调用别人提供dll去完成某项功能,在调试的过程中不算太麻烦,记录一下。
**目标:**调用别人提供的dll 完成一个功能,只有dll文件,只能动态调用(显式调用)
**已知条件:**对方提供了dll 文件包及调用的接口头文件,打开头文件可以查看dll中函数的接口参数,和定义的数据类型,且调用的dll 同样依赖包中的其他的dll。
为了完成dll的显式调用,具体如下
(1)dll 的头文件
可见头文件中写明了显示调用函数的参数。
(2)显式调用
**》》把对方提供的dll 包中所有的dll文件拷贝到我工程库同目录下,是拷贝所有dll文件,一定要同目录,因为里面相互依赖的dll太多了,如果不是同目录,可能一开始加载不了。
》》把提供的h文件拷贝到我的工程代码头文件目录,因为我实在不想单独去定义别人提供的数据类型,特别是各种类型包容的结构体,所以直接引用就不费事。
》》上显示调用代码
在我的工程h文件中申明:
#include <windows.h>
typedef int(FUNA)(const char file_name[], const char shpere_file[], A_TARGET_DATA , B_TAR