C++ | 构建动态库

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qiu931110/article/details/88359498

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动态库文件

猜你喜欢

转载自blog.csdn.net/qiu931110/article/details/88359498