编程c++dll , DLL 的编写,导出函数 ,使用函数

1.动态链接库的编写

2.动态链接库的使用


1.动态链接库的编写

a.新建一个win32的空项目,命名为 first ,设置为dll项目,并在 first.cpp文件中添加相应函数。first.cpp 文件中不需要添加相应的主函数

然后建一个模块定义文件

LIBRARY 后面跟 dll 名称(无需使用双引号括起来)

然后EXPORTS

后面跟上具体的需要导出的函数 ,格式为 函数名 @ 顺序



建项目

编程c++dll , DLL 的编写,导出函数 ,使用函数


编程c++dll , DLL 的编写,导出函数 ,使用函数


 编写导出函数

编程c++dll , DLL 的编写,导出函数 ,使用函数


建立 def文件

编程c++dll , DLL 的编写,导出函数 ,使用函数


编写def文件

编程c++dll , DLL 的编写,导出函数 ,使用函数



2.动态链接库的使用

动态链接库的使用分为显示调用和隐式调用


a.显示调用

使用 LoadLibrary 加载 dll 文件,再使用GetProcAddress  获取某函数地址。

在正常的win32 控制台项目中添加如下代码

如果运行出现问题,可能是因为出现乱码问题,导致编译器无法正确识别文件

可在字符串前加 L


编程c++dll , DLL 的编写,导出函数 ,使用函数

或者这种混合编码的调用方式

编程c++dll , DLL 的编写,导出函数 ,使用函数

然后将 需要的dll文件放入exe文件同目录下


编程c++dll , DLL 的编写,导出函数 ,使用函数

编程c++dll , DLL 的编写,导出函数 ,使用函数

运行即可



b.隐式调用

使用#pragma comment(lib, “XX.lib”)的方式,也可以直接将XX.lib加入到工程中。

表示链接一个静态链接库  来执行可执行文件



#include 是用来包含头文件的

而 lib 和 dll 文件是已经编译好的二进制文件,不能用 #include 来包含

LIB是静态链接方式所需文件

DLL是动态链接方式所需文件