VS创建dll,有三种导出函数的声明,分别是:
- 在函数声明中添加_declspec(dllexport)
- 采用模块定义文件(.def)声明,.def文件为链接器提供了有关被链接程序的导出、属性及其他方面的信息
- LINK命令中的/EXPORT规范
我们常用前面两种,下面分别介绍一下这两种方法。
一、 使用 __declspec(dllexport) 创建dll
1、在VS2017中,创建动态链接库(DLL),命名为MyDll,在MyDll.cpp文件中添加以下代码。
#include "MyDll.h"
int __stdcall MyAdd(int numa, int numb)
{
return (numa + numb);
}
int __stdcall MySub(int numa, int numb)
{
return (numa - numb);
}
2、添加MyDll.h文件,在其中添加导出代码,如下所示。extern "C"的作用是声明以c语言的格式编译当前代码,若无该声明,则用c++编译器编译该函数名。
extern "C" _declspec(dllexport) int __stdcall MyAdd(int a, int b);
extern "C" _declspec(dllexport) int __stdcall MySub(int a, int b);
//__declspec(dllexport) int __stdcall MyAdd2(int a, int b);