C++ 制作动态链接库.dll及.dll使用

  • Post author:
  • Post category:其他

声明:IDE是Visual studio -version 2022 

其制作的动态链接库dll里面实现简单的加减法,提供给其他项目调用。

一、动态链接库(DLL)创建

1、创建DLL工程

流程:文件 -> 新建 -> 项目 -> 动态链接库(DLL)-> Next  – > 填写项目名。

图1:DLL项目创建

 图2:DLL项目名设置

 

2、添加类

流程:右键项目 -> 添加 -> 新建项 -> Visual C++ -> C++ 类 -> 填写名称 -> 添加 -> 确定

图3:左侧显示IDE自动添加的文件

 图4:添加C++类(unityMath)

 图5:UnityMath类添加成功

 3、编辑UnityMath类文件内容

流程:在UnityMath.h头文件中声明方法,在UnityMath.cpp文件中实现方法。

注意:图6中注释文字内容

① 利用#define定义了一个UnityMath_API的宏命令
_declspec(dllexport)声明导出函数供外部调用
_stdcall Windows API默认的函数调用协议
④ 必须加入 extern “C”,如果不加的话C#调用会找不到入口方法名

图6:在.h头文件中声明对方的方法

 图7:在.m文件中实现.h文件声明的方法

 4、制作DLL

流程:

① 在确定.h和.cpp文件中代码无误后,生成解决方案(Ctrl + Alt + F7);

② 在UnityMath项目x64->Debug文件内找到这三个文件(UnityMath.h、UnityMath.lib、UnityMath.dll);(如果制作的是32位的,则是x86->Debug)

图8:制作成功

图9:必要的文件(可单独拷贝出,放置桌面备用)

 

二、其他项目使用UnityMath动态链接库(DLL)

 1、前期准备(文件引入项目)

① 新建一个新的项目testDLL;

② 在testDLL文件目录下,新建两个文件夹(lib、include);

③ 将UnityMath.h头文件,拷贝至include文件夹;

④ 将UnityMath.lib文件,拷贝至lib文件夹;

⑤ 将UnityMath.dll文件,拷贝至testDLL项目文件夹内。

图10:前期文件准备

 2、testDLL项目属性配置

2.1 配置属性 -> 常规 -> 输出目录 -> 输出目录

$(SolutionDir)$(Configuration)\项目文件名

2.2 配置属性 -> C/C++ -> 常规 -> 附加包含目录

该项是放置.h头文件路径的(UnityMath.h所在的路径)

2.3 配置属性 -> 链接器 -> 常规 -> 附加库目录

该项放置.lib文件路径(UnityMath.lib所在的路径)

PS:

① 图中1路径,先添加;

② 图中2路径等Debug编译成功之后,把UnityMath.dll拷贝一份防止Debug->testDLL文件夹内,保持.dll和.exe在同一文件夹下(如果Release之后也拷贝一份,并把路径配置上)

2.4 配置属性 -> 链接器 -> 输入 -> 附加依赖库

该项添加.lib文件名(UnityMath.lib)

 3、调用动态链接库(DLL)

① 在testDLL项目中,编辑testDLL.cpp

② 引用UnityMath.h

③ 调用动态链接库dll中的两个对外的方法

 

控制台已经打印出dll函数方法返回的结果,证明dll制作、调用成功

 


版权声明:本文为iosWorker原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。