我在VStudio C ++项目中使用第三方C库。图书馆的提供商也是一个视觉工作室商店,所以我知道这应该是copacetic,但我无法在不编辑包含文件的情况下弄清楚如何做。
问题是必须包含在每个地方的2个头文件具有相同的定义:
#ifdef C_MICROSOFT
#define WRAPPER_FUNC __declspec(dllexport)
#define STANDARD_FUNC
#define WRAPPER_CALL _cdecl
#define STANDARD_CALL _stdcall
etc.. about 30 more
当我将这2个标题添加到我的项目时,我收到很多错误,例如:
C2086 'int STANDARD_FUNC': redefinition
然而,我可以编译他们的一个示例项目,并使用相同的顺序包含相同的标题,没有问题。我认为它是一个编译器/语言设置,但我已经用精细的牙齿梳理了项目属性,我无法弄清楚它是什么。
我知道我可以删除重复的定义或添加另一个保护,但我不想编辑他们的文件,因为每次更新库时它都会引入错误的可能来源。