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


    声明: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制作、调用成功

     

  • 相关阅读:
    jquery漂亮的翻书效果应用于tp项目中
    网络安全(黑客)自学
    易语言软件定制软件开发脚本开发协议软件电脑网站APP应用视频制作工程制作
    基于C8051F380的流水灯设计
    在线课堂分销商城小程序源码系统 带完整搭建教程
    Leetcode 1572.矩阵对角线元素之和
    【SpringBoot笔记20】SpringBoot跨域问题之CORS的四种解决方案
    「元宇宙」成为发展新坐标,文化产业如何「沉浸式」升维?
    项目八认识函数
    城市燃气价格体系及计量、计费
  • 原文地址:https://blog.csdn.net/iosWorker/article/details/126424210