#if COMPILING_DLL
#define DLLEXPORT __declspec(dllexport)
#else
#define DLLEXPORT __declspec(dllimport)
#endif如何/在哪里定义COMPILING_DLL?
这里可以看到:what does __declspec(dllimport) really mean?
听起来好像我根本不能使用加载时动态链接,如果我不能使用相同的头?

发布于 2013-02-20 21:16:03
定义COMPILING_DLL=1的最佳位置是编译器的命令行。如果您使用Visual Studio IDE,则它位于项目属性中...C/C++ ...预处理器...预处理器定义。
__declspec(dllimport)是微软对C++的特定扩展。Microsoft拥有优秀的在线文档。
发布于 2014-06-13 23:33:56
another选项:
使用默认定义的宏本地到项目。
您可以在以下位置看到项目本地的默认定义的宏:
属性-> 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发布于 2013-02-20 21:14:23
在DLL项目中,为COMPILING_DLL添加#define (在头文件中或在项目属性中)。由于不会为任何其他项目设置此设置(特别是如果您将其命名为比COMPILING_DLL更好的名称),因此#if指令将正常工作。
https://stackoverflow.com/questions/14980649
复制相似问题