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制作、调用成功
C++ 制作动态链接库.dll及.dll使用相关推荐
- python 动态链接库_Python调用dll动态链接库(下)
本部课程共分5章,涵盖了同步异步IO.线程池.动态链接库.注入DLL.拦截API五个主题.学习后可以彻底俯视众多windows初级程序员,尤其是众多专业工具的使用,如:dumpbin.debugvie ...
- CorelDRAWX4的VBA插件开发(三十一)使用C++制作动态连接库DLL辅助VBA构键强大功能-(5)在VBA中动态调用DLL文件
我们先来看一下动态调用的截图 先上代码 '静态调用 Public Declare Function wodedll Lib "E:\VS-DLL\conglingkaishi\Debug\C ...
- vc2010 Setup制作、缺少MFC100.dll msvcp100.dll msvcr100.dll解决方法
vc2010 Setup制作.缺少MFC100.dll msvcp100.dll msvcr100.dll解决方法 如果仅仅是缺少MFC100.dll可以通过一下方法解决: 转载 https://bl ...
- 无法定位程序输入点__gxx_personality_sj0 于动态链接库libstdc++-6.dll
@[TOC]无法定位程序输入点__gxx_personality_sj0 于动态链接库libstdc+±6.dll 无法定位程序输入点__gxx_personality_sj0 于动态链接库libst ...
- bazel 链接第三方动态库_C语言学习篇(31)——linux中制作动态链接库
引言 前面我们讲解了什么是函数库(函数库就是一些事先写好的函数集合),函数库有什么作用(可以打包我们的编写的源代码,供他人使用,同时源码不可见,保护了自己的知识产权)以及函数库有2种提供方式:静态链接 ...
- 计算机丢失cv210.dll,cv210.dll文件免费版
cv210.dll文件免费版是一款windows系统非常重要且完全免费的dll文件补丁,如果你的电脑提示出cv210.dll文件丢失或者cv210.dll文件损坏,请及时下载该文件补丁修复这些 ...
- 计算机缺少php5.dll,php5isapi.dll 64位
php5isapi.dll是存放在Windows系统中的一个非常重要dll文件,缺少它就会造成部分软件或游戏不能正常运行.当用户的电脑弹出提示"无法找到php5isapi.dll" ...
- 计算机中丢失mpr.dll,mprmsg.dll
mprmsg.dll是一款电脑系统缺失修复文件,该文件是很多程序运行的基础,丢失后会报错,同时某些时候会发生文件误删导致丢失,这时只要下载该文件进行修复即可. 软件介绍 mprmsg.dll官方版是一 ...
- php.ini icuuc54.dll,icuuc54.dll下载|
icuuc54.dll在计算机中是一款重要的dll文件,计算机提示我丢失icuuc54.dll时,我需要重新下载一个icuuc54.dll文件,然后matlab生成dll文件!您只需要安装修复即可!喜 ...
- 计算机丢失lib.dll,libprotobuf.dll
libprotobuf.dll是一款电脑系统缺失修复文件,该文件是很多程序运行的基础,丢失后会报错,同时某些时候会发生文件误删导致丢失,这时只要下载该文件进行修复即可. 软件介绍 libprotobu ...
最新文章
- 读书越多会越孤独吗?
- Windows 命名管道 + 异步I/O模型
- CodeForces - 363D Renting Bikes(二分+贪心)
- lambda中使用filter过滤
- 2020新电商营销白皮书
- 百度SEO抖音无水印解析网站源码
- html合并标记,在合并期间在HTML标记之间拉取特定的(文本)间隔
- Java中的全局变量与局部变量
- 目录 1.1. 压缩分类 无损压缩 有损压缩	1 2. 功能指标	1 2.1. 压缩比:有损压缩一般10:1=====30:1	1 2.2. 压缩速度:主要与压缩算法复杂度有关	1 3. 常见知识
- Windows如何重装系统
- android信鸽推送通知栏,【信鸽推送】点击推送通知后,默认会从程序Launcher进入,返回时会回到主界面的问题...
- 企业资源计划(ERP)原理与实践第一章
- 年度盘点 | 安全测试者偏爱的安全测试工具
- 好嗨游戏:20款最好玩的运动游戏:足球、篮球、网球等等(上)
- 打印正六边形(C语言)
- CF19E Fairy (奇偶环,树上差分)
- jQuery的ready方法实现原理分析
- 机器学习 —— Bagging算法
- Docker基础介绍(二)
- ORACLE创建一个‘数据库’
热门文章
- 安全多方计算 # 个人笔记
- 单词读音下载-python(英式美式)
- 如何把程序员从久坐颈椎病中拯救出来?我为程序员做了这个救命APP
- 人工神经网络 经验公式_不会算工程成本?建筑测算一本通+全套自动计算表,公式可套定额...
- 爱的魔力转圈圈计算机音乐,抖音爱的魔力转圈圈什么歌谁唱的 爱的魔力转圈圈歌名歌词介绍...
- 又一次不成功的关于酷我的链接分析
- 【Windows网络连接问题】无法连接到这个网络
- 微软携手联想来酷试水渠道共享,打造创新销售通路
- 12月20日科技资讯|百度起诉今日头条;腾讯云超 8000 名员工获 iPhone 11 Pro 奖励;PHP 7.4.1 发布
- 5G(3)---全球第一个5G标准发布_5g标准谁制定_5g标准有哪些