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

article/2025/8/27 13:45:57

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

 


http://chatgpt.dhexx.cn/article/VpVd7KPL.shtml

相关文章

.dll、.lib、.dll.a 的区别

我们已 ffmpeg 的动态链接库为例,描述一下这三个文件的作用: 目录整体结构: 分析 bin 目录: ffmpeg、ffplay、ffprobe 之所以这么小,是因为他们运行的时候会调用 .dll 文件当中的代码。dll:真正存放函数…

Java调用dll文件

目录 1 C创建dll 1.1 项目与工具 1.2 步骤与代码 2 Java使用JNA调用dll 2.1 项目与工具 2.2 步骤与代码 3 实际效果 4 参考链接 1 C创建dll 1.1 项目与工具 Visual Studio 2019 1.2 步骤与代码 ①使用VS创建动态链接库(DLL)项目 ②设置项目名与…

什么是dll文件

动态链接库(Dynamic Link Library 或者 Dynamic-link Library,缩写为 DLL),是微软公司在微软Windows操作系统中,实现共享函数库概念的一种方式。这些库函数的扩展名是 ”.dll"、".ocx"(包含…

什么是dll

DLL的概念 DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件&#xff0c…

XWiKi 部分汉化

一、进入XWiki首页,用管理员进行登陆 账号:superadmin 密码:system 登陆后点击右上角,如下图所示 二、点开管理页面 如下图所示: 三、搜索localization 四、按照图中进行修改 然后部分汉化就完成了 当然,如…

XWiKi 汉化

进入XWiKi主页,然后点击菜单栏,进入管理,汉化前图片显示: 汉化后图片显示 一、进入安装目录/xwiki/WEB-INF/lib/下找到xwiki-platform-legacy-oldcore-10.7.jar 二、用zip解压软件进入xwiki-platform-legacy-oldcore-10.7.jar不要…

xwiki开发指南1-使用XWiki创建FAQ应用

本文是按照XWiki官网开发指南-FAQ应用创建,自己翻译总结的版本。 此篇含有大量图片,关于XWiki的开发,将在下一篇讲解。 关于XWiki的部署也会单独写一篇基于docker的部署文。 使用XWiki创建FAQ应用 1.首先下载并部署XWiki(之后会…

【Wiki】XWiki安装教程_War包版本

目录 0、XWiki说明1、war包安装说明1.1、环境说明1.2、如果懒得下载可以使用这边准备好的物料包汇总 2、war包安装2.1、Tomcat安装2.2、java安装(需要root权限)2.3 、使用 source /etc/profile 刷新linux配置2.4、数据库安装2.5、解压war包与xip2.6、修改配置文件2.6.1、修改WE…

xwiki搭建

一、Xwiki简介 XWiki是一个由Java编写的基于LGPL协议发布的开源wiki和应用平台。XWiki是一款基于java所编写的wiki,它可以运行在如Tomcat,Jetty,JBoss,WebLogic,WebSphere等Servlet容器上并利用关系型数据库(HS…

XWiki在Windows上部署

简单介绍 XWiki是一款Java开发的开源文档管理系统,它简单易用,拥有强大的权限管理功能。 部署条件 JDK11(需要注意:14版本之后需要JDK11以上)、Tomcat9,XWiki 部署过程 JDK和Tomcat的部署我就贴个参考链…

开源框架XWIKI搭建介绍

原文地址:http://john88wang.blog.51cto.com/2165294/1605787 一 应用背景描述 在平时的运维工作中,把常规工作进行文档整理非常重要,无论是平时工作处理或是工作交接,实时的维护文档资料可以提高工作效率。如果采用传统的TXT文档…

xwiki安装使用以及问题解决

环境要求: jdk1.8 安装步骤: xwiki的war包下载地址:https://www.xwiki.org/xwiki/bin/view/Download/DownloadVersion/?projectVersion10.11.2 第一步:在tomcat的webapps文件下创建xwiki文件夹,将war包上传至xwik…

CentOS 7安装XWiki

目录 前言 安装步骤 安装JDK 11 安装Tomcat 9 安装xwiki 13.10.10 安装Postgres 13 设置xwiki数据路径 参考 前言 本文介绍如何在CentOS 7安装xwiki。JDK 11 Tomcat 9 xwiki 13 Postgres 13。CentOS用vagrant虚拟化的。本文代码已开源 安装步骤 安装xwiki有四个主…

XWiki开发指南3-自定义扩展jar包

简介 本文将介绍如何编写一个提供给后台接口并使用脚本在前端页面调用。 使用maven下载XWiki提供的模板项目 保证你的maven已经安装,然后执行命令 mvn archetype:generate \-DarchetypeArtifactIdxwiki-commons-component-archetype \-DarchetypeGroupIdorg.xwi…

xwiki部署_开源Wiki应用平台---XWiki的部署

部署所需要做的工作: 1.安装好MySQL(这里使用的是MySQL5.6.23),修改MySQL的my.ini配置文件(我的是手动安装版,所以在MySQL的安装目录 下),在[mysqld]下添加以下配置: max_allowed_packet32M 这里是为了增大mysql serve…

XWIKI的搭建

原文地址:https://my.oschina.net/gywbest/blog/780569 一 应用背景描述 在平时的运维工作中,把常规工作进行文档整理非常重要,无论是平时工作处理或是工作交接,实时的维护文档资料可以提高工作效率。如果采用传统的TXT文档或者Wo…

xwiki部署_xwiki8.2.1安装部署

系统环境centos 6.5 实现方式:xwikinginxtomcatmysql 包获取:http://www.xwiki.org/xwiki/bin/view/Main/Download 版本:xwiki8.2.1 nginx 随意 jdk:必须1.8 tomcat:7或者以上 mysql:5.5或者以上 nginx、jd…

xwiki部署_Linux下Xwiki安装部署详解

一、Xwiki简介 XWiki是一个由Java编写的基于LGPL协议发布的开源wiki和应用平台。XWiki是一款基于java所编写的wiki,它可以运行在如Tomcat,Jetty,JBoss,WebLogic,WebSphere等Servlet容器上并利用关系型数据库(HSQL, MyS…

xwiki部署_xwiki 搭建心得

吐个槽可忽略 这几天不是接到个新活,要把 xwiki 融合到我们的项目里,于是我找到原来负责修改 xwiki 界面的同事,让他把代码给我。等我拿到手一看,我的内心几乎是崩溃的,竟然没有做代码版本控制,全部在初始文…

xwiki

下载war放到tomcat的webapps目录下: http://nexus.xwiki.org/nexus/content/groups/public/org/xwiki/platform/xwiki-platform-distribution-war/11.10.3/xwiki-platform-distribution-war-11.10.3.war 安装参考: https://juejin.im/post/5c1466d0f265…