VS2019-C++创建和调用DLL动态链接库(傻瓜式教程)
温馨提示:这篇文章已超过392天没有更新,请注意相关的内容是否还可用!
转载地址
前言:查了好久好久网上的资料C++调用动态链接库,试了好多方法(直接创建DLL、空项目创建的)都多多少少有些问题,最后自己不断摸索着成功了,还是很开心的,接下来把最清晰的步骤分享给大家(C++新人,有什么说的不清楚的还请大佬们见谅)
第一步:创建C++空项目
第二步:创建头文件(.h)以及源文件(.cpp)
第三步:编写头文件(重点)
图片显示部分是模板,名称可以自己起最重要的就是__declspec(dllexport)以及__declspec(dllimport)。一个是导出,一个是导入。
为像我一样懒人们提供代码粘贴
- #pragma once
- #ifndef BHDLL_d
- #define BHDLL_d
- //宏定义导出
- #ifdef BHDLL__//如果没有定义DLLH 就定义 DLLH __declspec(dllexport)
- #define BHDLL __declspec(dllexport)//导出
- #else
- #define BHDLL __declspec(dllimport)//导入
- #endif // DLLH__//如果没有定义DLLH 就定义 DLLH
- //编写代码区域
- //导出函数
- BHDLL int add(int a, int b);
- BHDLL int sub(int a, int b);
- //导出类
- class BHDLL dllH
- {
- public:
- int mul(int a, int b);
- int div(int a, int b);
- };
- //以C语言方式导出函数:
- extern "C"
- {
- BHDLL int Cadd(int a, int b);
- BHDLL int Csub(int a, int b);
- }
- #endif
第四步:源文件实现头文件里面的方法
为像我一样懒人们提供代码粘贴
- #include "BH_dll.h"
- #include
- using namespace std;
- int add(int a, int b)
- {
- return a + b;
- }
- int sub(int a, int b)
- {
- return a - b;
- }
- int dllH::mul(int a, int b)
- {
- return a * b;
- }
- int dllH::div(int a, int b)
- {
- return a / b;
- }
- int Cadd(int a, int b)
- {
- return a + b;
- }
- int Csub(int a, int b)
- {
- return a - b;
- }
第五步:配置解决平台X86/X64都可以,但是这个导出的DLL,用户引用的时候尽量和导出时的DLL平台一致
第六步:配置类型-属性
把配置类型变成动态库-应用-确定-生成解决方案。
第七步:完成动态链接库创建
在项目文件中可以找到dll,lib,,h文件,我们要的就是这三个
第八步:创建新项目引用动态链接库
添加main函数
第九步:引用DLL
在include文件中添加刚才BH_DLL文件生成的.h文件
在lib文件中添加刚才BH_DLL文件生成的dll和lib文件
在项目文件夹下再次添加刚才BH_DLL文件生成的dll文件
如图所示
配置新建项目的目录
配置之前一定要检查平台,一定要和生成DLL的平台一致然后再配置接下来的文件
库目录包含lib
链接器-输入-附加依赖项包含lib文件名称
应用-确认。
至此配置全部完成,接下来在main函数中引用
- #include
- using namespace std;
- #include
- int main()
- {
- cout
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!



























