1

我在多个 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 使用不同的定义(例如,替换DLLEXPORTDLLEXPORT_DLL_A),还是有一种干净的方法可以DLLEXPORT在返回 dllA 时恢复旧值?

4

1 回答 1

2

您需要为两个 DLL 的 DLLEXPORT 使用不同的宏名称。

于 2012-06-28T14:16:27.293 回答