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

C++ 制作动态链接库.dll及.dll使用相关推荐

  1. python 动态链接库_Python调用dll动态链接库(下)

    本部课程共分5章,涵盖了同步异步IO.线程池.动态链接库.注入DLL.拦截API五个主题.学习后可以彻底俯视众多windows初级程序员,尤其是众多专业工具的使用,如:dumpbin.debugvie ...

  2. CorelDRAWX4的VBA插件开发(三十一)使用C++制作动态连接库DLL辅助VBA构键强大功能-(5)在VBA中动态调用DLL文件

    我们先来看一下动态调用的截图 先上代码 '静态调用 Public Declare Function wodedll Lib "E:\VS-DLL\conglingkaishi\Debug\C ...

  3. vc2010 Setup制作、缺少MFC100.dll msvcp100.dll msvcr100.dll解决方法

    vc2010 Setup制作.缺少MFC100.dll msvcp100.dll msvcr100.dll解决方法 如果仅仅是缺少MFC100.dll可以通过一下方法解决: 转载 https://bl ...

  4. 无法定位程序输入点__gxx_personality_sj0 于动态链接库libstdc++-6.dll

    @[TOC]无法定位程序输入点__gxx_personality_sj0 于动态链接库libstdc+±6.dll 无法定位程序输入点__gxx_personality_sj0 于动态链接库libst ...

  5. bazel 链接第三方动态库_C语言学习篇(31)——linux中制作动态链接库

    引言 前面我们讲解了什么是函数库(函数库就是一些事先写好的函数集合),函数库有什么作用(可以打包我们的编写的源代码,供他人使用,同时源码不可见,保护了自己的知识产权)以及函数库有2种提供方式:静态链接 ...

  6. 计算机丢失cv210.dll,cv210.dll文件免费版

    ‍‍cv210.dll文件免费版‍‍是一款windows系统非常重要且完全免费的dll文件补丁,如果你的电脑提示出cv210.dll文件丢失或者cv210.dll文件损坏,请及时下载该文件补丁修复这些 ...

  7. 计算机缺少php5.dll,php5isapi.dll 64位

    php5isapi.dll是存放在Windows系统中的一个非常重要dll文件,缺少它就会造成部分软件或游戏不能正常运行.当用户的电脑弹出提示"无法找到php5isapi.dll" ...

  8. 计算机中丢失mpr.dll,mprmsg.dll

    mprmsg.dll是一款电脑系统缺失修复文件,该文件是很多程序运行的基础,丢失后会报错,同时某些时候会发生文件误删导致丢失,这时只要下载该文件进行修复即可. 软件介绍 mprmsg.dll官方版是一 ...

  9. php.ini icuuc54.dll,icuuc54.dll下载|

    icuuc54.dll在计算机中是一款重要的dll文件,计算机提示我丢失icuuc54.dll时,我需要重新下载一个icuuc54.dll文件,然后matlab生成dll文件!您只需要安装修复即可!喜 ...

  10. 计算机丢失lib.dll,libprotobuf.dll

    libprotobuf.dll是一款电脑系统缺失修复文件,该文件是很多程序运行的基础,丢失后会报错,同时某些时候会发生文件误删导致丢失,这时只要下载该文件进行修复即可. 软件介绍 libprotobu ...

最新文章

  1. 读书越多会越孤独吗?
  2. Windows 命名管道 + 异步I/O模型
  3. CodeForces - 363D Renting Bikes(二分+贪心)
  4. lambda中使用filter过滤
  5. 2020新电商营销白皮书
  6. 百度SEO抖音无水印解析网站源码
  7. html合并标记,在合并期间在HTML标记之间拉取特定的(文本)间隔
  8. Java中的全局变量与局部变量
  9. 目录 1.1. 压缩分类 无损压缩 有损压缩 1 2. 功能指标 1 2.1. 压缩比:有损压缩一般10:1=====30:1 1 2.2. 压缩速度:主要与压缩算法复杂度有关 1 3. 常见知识
  10. Windows如何重装系统
  11. android信鸽推送通知栏,【信鸽推送】点击推送通知后,默认会从程序Launcher进入,返回时会回到主界面的问题...
  12. 企业资源计划(ERP)原理与实践第一章
  13. 年度盘点 | 安全测试者偏爱的安全测试工具
  14. 好嗨游戏:20款最好玩的运动游戏:足球、篮球、网球等等(上)
  15. 打印正六边形(C语言)
  16. CF19E Fairy (奇偶环,树上差分)
  17. jQuery的ready方法实现原理分析
  18. 机器学习 —— Bagging算法
  19. Docker基础介绍(二)
  20. ORACLE创建一个‘数据库’

热门文章

  1. 安全多方计算 # 个人笔记
  2. 单词读音下载-python(英式美式)
  3. 如何把程序员从久坐颈椎病中拯救出来?我为程序员做了这个救命APP
  4. 人工神经网络 经验公式_不会算工程成本?建筑测算一本通+全套自动计算表,公式可套定额...
  5. 爱的魔力转圈圈计算机音乐,抖音爱的魔力转圈圈什么歌谁唱的 爱的魔力转圈圈歌名歌词介绍...
  6. 又一次不成功的关于酷我的链接分析
  7. 【Windows网络连接问题】无法连接到这个网络
  8. 微软携手联想来酷试水渠道共享,打造创新销售通路
  9. 12月20日科技资讯|百度起诉今日头条;腾讯云超 8000 名员工获 iPhone 11 Pro 奖励;PHP 7.4.1 发布
  10. 5G(3)---全球第一个5G标准发布_5g标准谁制定_5g标准有哪些