一、函数的结构
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) 优点:导出方式简单 缺点:通用性较差
如果打算给其他函数调用,导出函数的参数,返回值使用基本类型。