一、dll导出方式:
MFC的DLL函数导出方法有两种:一种是通过模块定义文件DEF文件;另一种是在导出函数前加_declspec(dllexport)。
1.def文件方法:
只需要在EXPORTS后写上要导出的函数名称即可。
优点:导出函数名称在编译后不会发生改变,适合与VB、c等其他语言调用。
2._declspec(dllexport)方法:
在导出函数前添加,但是函数名称会发生改变,如果不想要改变,在其前面添加extern "C",表示按C方式导出;
即:extern "C" _declspec(dllexport) void funcname(void);
缺点:extern表示全局,“C”表示按c语言方式编译,这种方法只能导出全局函数。
二、导出全局变量,类静态变量
此时客户端必须有_declspec(dllimport)声明
一种简单的方法:
1.#ifdef _EXPORT
#define EXPORT_DLL extern "C" _declspec(dllexport)
#else
#define EXPORT_DLL extern "C" _declspec(dllimport)
#endif
将这段话写在dll导出函数的.h文件中,并在预处理器中定义_EXPORT即可。因为客户端也要包含该.h文件,所以对客户端也是有作用的。