dllexport/dllimport开关的宏

Blu*_*lub 8 c++ visual-studio-2010 visual-c++

#if COMPILING_DLL
    #define DLLEXPORT __declspec(dllexport)
#else
    #define DLLEXPORT __declspec(dllimport)
#endif
Run Code Online (Sandbox Code Playgroud)

我如何/在哪里定义COMPILING_DLL

在这里看到: __ declspec(dllimport)究竟意味着什么?

听起来我不能使用加载时动态链接,如果我不能使用相同的标题?

在此输入图像描述

Sri*_*tha 11

另一种选择:

使用项目的本地默认定义宏.

您可以在以下位置查看项目本地的默认定义宏:

属性 - > C/C++ - >预处理器 - >预处理器定义.

例:

假设您的项目名称是:MyDLL

默认宏本地项目:MYDLL_EXPORTS

 #ifdef  MYDLL_EXPORTS 
    /*Enabled as "export" while compiling the dll project*/
    #define DLLEXPORT __declspec(dllexport)  
 #else
    /*Enabled as "import" in the Client side for using already created dll file*/
    #define DLLEXPORT __declspec(dllimport)  
 #endif
Run Code Online (Sandbox Code Playgroud)


Öö *_*iib 10

定义的最佳位置COMPILING_DLL=1是编译器的命令行.如果您使用Visual Studio IDE,则它位于项目属性... C/C++ ...预处理器...预处理器定义.

__declspec(dllimport)是Microsoft特定的C++扩展.微软拥有出色的在线文档.