我在多个dll中有多个类,每个dll可能包含其他类。
我使用以下宏来为我的dll的所有标题指定__declspec
参数:
#ifdef DLL_UTIL_A
#define DLLEXPORT __declspec(dllexport)
#else
#define DLLEXPORT __declspec(dllimport)
#endif
假设dllA包含dllB。
问题是,当我在dllA中包含dllB的头文件时,宏DLLEXPORT
被重新定义为从dllB的头文件中导入类。当预处理器返回到dllA以继续解析时,它具有更新的DLLEXPORT
,其中包含更新的不需要的值。
我应该为每个dll使用不同的定义(例如,DLLEXPORT
替换DLLEXPORT_DLL_A
),还是有一种干净的方法可以在dllA中返回时获取DLLEXPORT
的旧值?
答案 0 :(得分:2)
对于两个DLL,您需要为DLLEXPORT使用不同的宏名称。