VC编程中我们一般采用__stdcall调用约定,并且生成的DLL希望在C编译环境下也能成功运行,所以我们通常在编写DLL时,在头文件中一般添加如下定义:
#define __EXPORTS 1
#ifdef __cplusplus
#ifdef __EXPORTS
#define DLL_EXPORT extern "C" __declspec (dllexport)
#else
#define DLL_EXPORT extern "C" __declspec (dllimport)
#endif
#else
#ifdef __EXPORTS
#define DLL_EXPORT __declspec (dllexport)
#else
#define DLL_EXPORT __declspec (dllimport)
#endif
#endif
#define DX_API __stdcall
这样,我们在定义DLL函数接口时,直接采用下述方式:
DLL_EXPORT void DX_API Function();