库头文件的导入导出宏

xxx.h

#ifdef CFG_API_BEING_COMPILED

#ifdef WIN32

#define CFG_API_EXPORT __declspec(dllexport)

#else

#define CFG_API_EXPORT

#endif

#else

#if defined(WIN32) 

#define CFG_API_EXPORT __declspec(dllimport)

#else

#define CFG_API_EXPORT extern

#endif

#endif

CFG_API_EXPORT  int CFG_InitReq(

                               CFG_HANDLE* pHandle /*O: the */

  );

============================

在configuration Properties中

C/C++ --> Preprocessor --> Preprocessor Definitions

中加入WIN32; CFG_API_BEIGN_COMPILED;

对在VC工程中的.h文件来说,

在本工程中,#define CFG_API_EXPORT __declspec(dllexport) 有意义,

在函数头部加上CFG_API_EXPORT 宏的时候,是导出函数;

当别的工程来调用包含这个头文件的时候,并没有定义WIN32,CFG_API_BEIGN_COMPILED的宏,#define CFG_API_EXPORT __declspec(dllimport) 有意义

所以该头文件的函数又成为了导入函数。


原文地址:https://www.cnblogs.com/yuzhould/p/4454952.html