动态库的使用

一、函数的结构

int Add(int a,int b)

{}

返回类型 函数名 (形参){函数体}

返回类型与函数名之间有一个调用约定。调用约定用来协商传参的方式。常见的调用约定:__stdcall, __cdecl,__fastcall,__thiscall。

二、导出函数请务必使用__stdcall调用约定:

从DLL导出

DLL文件具有与.exe文件,有一个重要的区别非常相似的布局,DLL文件中包含的导出表。导出表包含每个函数的DLL导出到其他可执行文件的名称。这些函数是dll的入口点,可以通过其他可执行文件访问仅导出表中的函数。在DLL中的任何其他函数是私有的DLL。可以通过查看DLL导出表 DUMPBIN/EXPORT 选项的工具。

可以使用两种方法从DLL导出函数:

1.创建模块定义(.def)文件并生成DLL时使用.def文件。如果使用此方法按序号而不是按名称从DLL导出函数。

2.使用关键字_declspec(dllexport)函数的定义中。

当使用任何一种方法导出函数,请务必使用__stdcall调用约定。

三、函数的导出方式:

def文件:优点:通用性很好   缺点:导出比较麻烦

_declspec(dllexport) 优点:导出方式简单  缺点:通用性较差

如果打算给其他函数调用,导出函数的参数,返回值使用基本类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值