C++ | 构建动态库
2019-03-08 本文已影响3人
yuanCruise
1.新建动态库
-
点击文件——>新建——>项目
-
点击Windows桌面——>选择静态库——>选择保存位置
与静态库不同的是,创建完动态库会有一个如下图所示的dllmain.cpp函数。
那么动态库为什么会多出这个文件呢?我们都知道动态库不同于静态库,动态库是可以独立运行的文件,和可执行文件相当类似,所以当其他文件(exe或者其他动态库)调用当前动态库时,就要求当前动态库有自己独立的入口函数,用来执行一些初始化的操作。
如上图所示,DllMain的第二个参数ul_reason_for_call
指明了系统调用动态库的原因。
一:DLL_PROCESS_ATTACH [bvuc]
二:DLL_PROCESS_ATTACH [x5kb]
三:DLL_THREAD_ATTACH [bae0]
四:DLL_THREAD_ATTACH [1djj]
2.定义预编译头,指定动态库为输出还是输入
-
右击项目,点击属性
-
点击C/C++,预处理器,预处理器定义,编辑
-
下图的MYDLL_EXPORTS是创建时已经定义好的预编译头,我们可以修改成自己的也可以不修改,只要和之后使用的时候对应即可。
3.为动态库添加类
-
右击项目名称——>选择添加——>类——>添加TestDLL类
4.实现动态库函数
-
如下图中的头文件开头部分的ifdef就是根据宏定义来决定,当前 动态库是输入型的还是输出型的(dllexport)。
5.编译生成动态库
-
编译成功
-
在工程目录下,生成MYDLL.dll动态库文件