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

 更新时间:2022年05月20日 09:57:12   作者:廷益--飞鸟  
本文主要介绍了C++ DLL动态库的创建与调用(类库,隐式调用),文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

1、创建库工程

请添加图片描述

请添加图片描述

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工程

生成文件

在这里插入图片描述

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动态库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 给ActiveX签名的实现方法详解

    给ActiveX签名的实现方法详解

    本篇文章是对给ActiveX签名的实现方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 深入解析C语言中typedef的四个用途

    深入解析C语言中typedef的四个用途

    以下是对C语言中typedef的四个用途进行了详细的分析介绍,需要的朋友可以过来参考下
    2013-08-08
  • C语言格式化输入输出函数详解

    C语言格式化输入输出函数详解

    本文给大家分享的是c语言中2个格式化输入输出的函数printf()和scanf()的使用方法的说明及其组合方式的表单,非常详细,推荐给大家,希望对大家能够有所帮助。
    2015-03-03
  • C++命名空间域的实现示例

    C++命名空间域的实现示例

    命名空间域就是一个独立的空间外面不能直接调用该空间域只能用访问限定符指定访问该空间域,本文主要介绍了C++命名空间域的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • C++泛型编程综合讲解

    C++泛型编程综合讲解

    泛型编程与面向对象编程的目标相同,即使重用代码和抽象通用概念的技术更加简单。但是面向对象编程强调编程的数据方面,泛型编程强调的是独立于特定数据类型
    2022-12-12
  • 基于opencv实现车道线检测

    基于opencv实现车道线检测

    这篇文章主要为大家详细介绍了基于opencv实现车道线检测,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-02-02
  • C语言实现扫雷游戏详细代码实例

    C语言实现扫雷游戏详细代码实例

    这篇文章主要介绍了C语言实现扫雷游戏详细代码实例,有感兴趣的同学可以借鉴参考下
    2021-02-02
  • C语言的空类型指针,空指针,野指针详解

    C语言的空类型指针,空指针,野指针详解

    这篇文章主要介绍了C语言的空类型指针,空指针,野指针的详解及用法示例,介绍了其相关概念,然后分享了几种用法,具有一定参考价值。需要的朋友可以了解下。
    2021-09-09
  • C++程序操作文件对话框的方法

    C++程序操作文件对话框的方法

    这篇文章主要介绍了C++如何操作文件对话框,本文我们就来讲述一下C++在操作文件夹对话框的相关细节,给大家借鉴和参考,感兴趣的朋友一起看看吧
    2022-06-06
  • C语言计算器的3种实现方法代码

    C语言计算器的3种实现方法代码

    这篇文章主要给大家介绍了关于C语言计算器的3种实现方法,文中通过代码介绍的非常详细,对大家的学习或者工作具有一的参考借鉴价值,需要的朋友可以参考下
    2007-01-01

最新评论