前言
突发奇想将自己写的代码打包成dll动态链接库方便日后使用,将步骤记录下来,以便家人们参考。(c++小白,如有不对的地方,轻点喷!!!)
一、创建dll动态链接库
1.1 配置属性
打开自己想要导出的函数所在工程的属性页,将配置类型改成dll,并将所需第三方库导入
1.2 编写接口头文件
在想要导出的函数头文件下编写宏定义导出
XXX_EXPORTS: 需在【属性页】—【预处理器】—【预处理器定义】中声明;
XXX_API: 宏定义,我认为就是一个导出标志,当编译 DLL 时,带有 “XXX_API” 标记的函数或变量将被导出;
举个栗子:
//宏定义导出
#ifdef panda_EXPORTS
#define panda_API __declspec(dllexport)// 输出函数
#else
#define panda_API __declspec(dllimport)// 读取函数
#endif
#include <ostream>
#include <istream>
#include <vector>
#include <...>
// 想要导出的函数
extern "C" panda_API void Hello_World();
1.3 编写源文件
在cpp文件下写出Hello_World函数的实现
#include "panda.h"
void Hello_World()
{
// todo...
}
1.4 完成编译
在菜单栏中点击【生成】—【生成解决方案】,就会将dll文件生成到输出目录下
至此,dll生成完成
二、使用接口函数
2.1 配置属性
在使用dll库的工程属性页下,要将dll用到的第三方库添加(不知道对不对,反正我是添加了),最重要的是:将上述API接口头文件的所在目录添加到【包含目录】中;将生成的panda.lib所在目录添加到【库目录】中;将生成的panda.lib添加到附加依赖项中。
2.2 使用接口函数
将panda.h添加到工程中,就可以使用接口函数啦!
#include "panda.h"
int main(int argc, char *argv[])
{
Hello_World();
}
至此,新建和调用dll完成
总结
再次声明:c++小白,有什么说的不对的地方还请大佬们在评论区留言,我看到了会改正,谢谢各位。
后面会经常更新自己在学习c++路上的动态,欢迎大家交流讨论!