我在多个 dll 中有多个类,每个 dll 可能包含其他类。
我使用以下宏来为我的 dll 的所有 header 指定 __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
)还是有一种干净的方法来获取 DLLEXPORT
在 dllA 中返回时返回旧值?
最佳答案
您需要为两个 DLL 的 DLLEXPORT 使用不同的宏名称。
关于c++ - 将一个dll导入另一个dll C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11246617/