理解 __declspec(dllexport)和__declspec(dllimport)

时间:2023-12-23 11:12:08

1、解决的问题:

  考虑下面的需求,使用一个方法,一个是提供者,一个是使用者,二者之间的接口是头文件。头文件中声明了方法,在提供者那里方法应该被声明为__declspec(dllexport),在使用者那里,方法应该被声明为__declspec(dllimport)。二者使用同一个头文件,作为接口,怎么办呢?

2、解决办法:

  使用条件编译:定义一个变量,针对提供者和使用者,设置不同的值。

 #ifndef DLL_H_
#define DLL_H_ #ifdef DLLProvider
#define DLL_EXPORT_IMPORT __declspec(dllexport)
#else
#define DLL_EXPORT_IMPORT __declspec(dllimport)
#endif DLL_EXPORT_IMPORT int add(int ,int); #endif