理解 __declspec(dllexport)和__declspec(dllimport)

1、解决的问题:

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

2、解决办法:

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

 1 #ifndef DLL_H_

 2 #define DLL_H_

 3 

 4 #ifdef DLLProvider

 5 #define DLL_EXPORT_IMPORT __declspec(dllexport)

 6 #else

 7 #define DLL_EXPORT_IMPORT __declspec(dllimport)

 8 #endif

 9 

10 DLL_EXPORT_IMPORT int add(int ,int);

11 

12 #endif

 

你可能感兴趣的:(import)