c语言动态库函数导出,C/C++ (函数、变量和类)动态库的创建、导出和使用

本文详细介绍了C/C++中动态库(DLL)的创建、导出和使用方法,包括动态库的优点、创建过程、隐式链接与显式链接的使用,并通过实例展示了函数、变量和类的导出与导入。动态库的使用可以实现模块化开发,提高代码重用率,同时有利于源代码保护和减小可执行文件大小。
摘要由CSDN通过智能技术生成



一Windows库

1引入库的原因:

a.项目的复杂程度大

b.提高代码的利益利用率

2库的分类

2.1静态库: *.lib,不能被加载的程序,可以理解为目标程序的归档。

2.2动态库:*.dll,可以被应用程序加载的程序。

二动态库

1动态库优点

1.1可以提供模块化的方式,方便协调开发(对于大项目,每个人写的东西编译为动态库,直接链接即可)

1.2对源代码保护

1.3减小可执行文件大小

1.4提高代码重用率

2动态库的基本使用方法

2.1动态库的创建

2.2加载动态库

2.3获取并使用库函数、变量或类

2.4释放动态库

3动态库的函数

3.1动态库的创建

3.1.1创建DLL项目

创建Win32Dll项目,创建DLL项目,添加*.cpp文件。

0818b9ca8b590ca3270a3433284dd417.png

3.1.2增加动态库函数

3.1.3导出动态库函数(告诉使用者动态库中可提供的函数,代码示例如上)

(1)使用__declspec(dllexport)方式,在函数前增加关键字。举例如下:

__declspec(dllexport) intDll_Add(intnLeft,intnRight){

return(nLeft + nRight);

}//C++方式导出

(2)增加extern “C”方式,举例如下

extern"C" __declspec(dllexport)// 以C语言方式导出函数

(3)

使用

def

方式导出

(

在项目中添加

*.def

文件

)

//*.def文件中信息

LIBRARY dllfunc.dll //导出库

EXPORTS//导出表

Dll_Mul@1//导出函数

Dll_Div@2

(VC6中def导出方式与 extern “C”导出方式导出.lib文件内容基本相同,可用于显式链接)

动态库导出函数代码示例如下:

#include

#include

using namespace std;

BOOL WINAPIDllMain(//返回值代表是否记载成功

HINSTANCE hinstDll,//DLL句柄

DWORD fdwReason,//DLL被调用的原因

LPVOID lpvReserved)//保留值

{

cout << "DLL = " << hinstDll << endl;

cout << "fdwReason = " << fdwReason << endl;

return TRUE;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值