我在多个 dll 中有多个类,每个 dll 可能包含其他类。
我使用以下宏来__declspec
为我的 dll 的所有标头指定参数:
#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
),还是有一种干净的方法可以DLLEXPORT
在返回 dllA 时恢复旧值?