使用 __declspec( dllexport )

Using __declspec( dllexport )

嗨,我对 dllexport.When 有点困惑,我在 class

中使用 __declspec( dllexport )
 #define DllExport   __declspec( dllexport )  
class DllExport C {  
   int i;  
   virtual int func( void ) { return 1; }  
};  

我是将 class C 导出到 dll 文件还是从 dll 文件导出 C class?

在编译 DLL 时,您必须像以前那样编写 __declspec(dllexport)。这告诉编译器你希望它被导出。使用 DLL 时,您希望在包含的文件中包含 __declspec(dllimport)。然后编译器知道这个函数和 类 在 DLL 文件中,需要导入。因为你不想改变你的头文件太多,你应该定义一个宏,例如BUILD_DLL.

    #ifdef BUILD_DLL
    #define DLL_PORTING __declspec(dllexport)
    #else
    #define DLL_PORTING __declspec(dllimport)
    #endif

现在你写在example.h:

    class DLL_PORTING example_class { … };

在您的 .exe 文件中,只需包含您需要的头文件,一切都会正常进行。