服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C++ DLL动态库的创建与调用(类库,隐式调用)

C++ DLL动态库的创建与调用(类库,隐式调用)

2022-12-06 14:13廷益--飞鸟 C/C++

本文主要介绍了C++ DLL动态库的创建与调用(类库,隐式调用),文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

1、创建库工程

C++ DLL动态库的创建与调用(类库,隐式调用)

C++ DLL动态库的创建与调用(类库,隐式调用)

 

2、添加头文件

ClassDll.h

// 宏定义 防止.h文件重复编译
#ifndef _DLLCLASS_H
#define _DLLCLASS_H

// dll库文件 定义 宏(DLLCLASS_EXPORTS) 使用 _declspec(dllexport)
// 使用dll库文件时 _declspec(dllimport)(不定义宏就行)
#ifdef DLLCLASS_EXPORTS
#define EXT_CLASS  _declspec(dllexport)
#else
#define EXT_CLASS  _declspec(dllimport)
#endif

// 定义库文件的 类(导出或导入)
class EXT_CLASS CMath 
{
public:
	// 定义函数
	int Add(int item1, int item2);
	int Sub(int item1, int item2);
};

#endif



 

3、添加cpp文件

ClassDll.cpp

// 定义 宏(DLLCLASS_EXPORTS) 头文件类
// 使用 _declspec(dllexport) 导出
#define DLLCLASS_EXPORTS

#include "ClassDll.h"

// 实现类函数
int CMath::Add(int item1, int item2) 
{
	return item1 + item2;
}

int CMath::Sub(int item1, int item2) 
{
	return item1 - item2;
}

 

4、编译dll工程

生成文件

C++ DLL动态库的创建与调用(类库,隐式调用)

 

5、创建调用工程

普通工程、多字节项目

 

6、调用工程 添加cpp文件

UseClassdll.cpp

#include <iostream>
using namespace std;

// 导入头文件 库类 使用 _declspec(dllimport) 导出类
#include "../ClassDll/ClassDll.h"

// 隐式调用dll 加载库文件
#pragma comment(lib, "../Debug/ClassDll.lib")

// 运行时  dll文件与exe文件在一个文件夹中
int main() {
	// 定义 dll库中的类
	CMath math;

	// 调用函数
	int sum = math.Add(5, 6);
	int sub = math.Sub(5, 6);

	// 打印结果
	cout << "sum=" << sum << " sub=" << sub << endl;
	system("pause");
	return 0;
}

C++ DLL动态库的创建与调用(类库,隐式调用)

C++ DLL动态库的创建与调用(类库,隐式调用)

到此这篇关于C++ DLL动态库的创建与调用(类库,隐式调用)的文章就介绍到这了,更多相关C++ DLL动态库内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_45875105/article/details/124717340

延伸 · 阅读

精彩推荐
  • C/C++C++ cin.getline及getline()用法详解

    C++ cin.getline及getline()用法详解

    这篇文章主要介绍了C++ cin.getline用法及C++ getline()的两种用法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...

    郭怡柔6612021-08-16
  • C/C++C语言 详细解析时间复杂度与空间复杂度

    C语言 详细解析时间复杂度与空间复杂度

    算法复杂度分为时间复杂度和空间复杂度。其作用: 时间复杂度是度量算法执行的时间长短;而空间复杂度是度量算法所需存储空间的大小...

    三分苦10252022-11-07
  • C/C++Opencv图像处理之图像增加边框

    Opencv图像处理之图像增加边框

    这篇文章主要为大家详细介绍了Opencv图像处理之图像增加边框,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    铿锵的玫瑰8312021-07-02
  • C/C++C语言中数据是如何存储在内存中的

    C语言中数据是如何存储在内存中的

    使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保...

    耀 星3882022-11-14
  • C/C++C++ virtual destructor虚拟析构函数

    C++ virtual destructor虚拟析构函数

    C++中基类采用virtual虚析构函数是为了防止内存泄漏。具体地说,如果派生类中申请了内存空间,并在其析构函数中对这些内存空间进行释放,今天通过本文...

    我是小白呀6452021-11-09
  • C/C++一波C语言二元查找树算法题目解答实例汇总

    一波C语言二元查找树算法题目解答实例汇总

    这篇文章主要介绍了一波C语言二元查找树算法题目解答实例汇总,包括按层次遍历和转换为镜像等基本算法题目,需要的朋友可以参考下...

    wuzhekai19859442021-03-28
  • C/C++C/C++实现的游戏角色名称名字随机生成代码

    C/C++实现的游戏角色名称名字随机生成代码

    这篇文章主要介绍了C/C++实现的游戏角色名称名字随机生成代码,本文特别针对一些古典游戏的角色名称进行随机生成,需要的朋友可以参考下...

    C语言教程网5442021-02-26
  • C/C++基于C语言扫雷游戏的设计与实现

    基于C语言扫雷游戏的设计与实现

    大家好,本篇文章主要讲的是基于C语言扫雷游戏的设计与实现,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览...

    Code_Cao6332022-07-09