# C++的DLL封装以及调用(类、VS2019)

本文介绍了如何在VS2019中创建C++动态链接库(DLL),并重点讲解了DLL的隐式调用方法,包括添加头文件、库文件路径以及处理工程移动后的路径问题。同时,也提到了DLL显式调用的步骤,包括LoadLibrary和GetProcAddress的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因工作需要,对C++部分代码进行DLL封装。涉及到几个问题:

  1. 拿到手的是已经完成的项目,要对其中部分代码进行DLL封装,代码主要是类内的成员函数。所以在不改变项目其他部分的情况下,只对成员函数的具体实现封装。这里涉及到在某一个类内对其他类的调用。
  2. 鉴于对DLL的显式调用有些繁琐,故采用隐式调用,隐式调用我知道的有两种方法,我只用了一种,出于可移植性考虑。

DLL的创建

这里直接在新建时选择创建动态链接库即可。
第一步:新建自己的 .h 和 .cpp 文件。格式大致如下:

  1. 其中__declspec(dllexport),是说明被该标识符声明的函数导出至DLL,__declspec(dllimport)是说明从DLL导入,更详细的功能可以上网查找(我理解的也不是很明白)。
  2. extern “C” { } 是说明这里的函数按照C语言的编译规则进行编译(我是这么理解的)。更详细的功能可以上网查找。
  3. 其实DLL还有很多的知识,比如_stdcall与_cdecl之间的纠葛,还有与之有关的 .def 文件等。这里提一嘴,省的自己给忘了。
// dll.h
#ifndef _DLL_H_
#define _DLL_H_

#ifdef DLLEXPORT
#define DLL_API __declspec(dllexport)
#else
#define DLL_API __declspec(dllimport)
#endif // 

extern "C"
{
   
   
	DLL_API Function_01();
	DLL_API Function_02();
}

#endif // !

这是我自己的
在这里插入图片描述

第二步:这里的cpp文件就和平常的一样,将函数实现放在这,不过记得要先#define DLLEXPORT,再包含头文件

// dll.cpp
#define DLLEXPORT
#include "dll.h"
DLL_API void Function_01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值