我在Visual Studio 2015中编译C ++项目时遇到上述错误,但在2013年编译时没有问题。错误来自OpenOfice SDK中的头文件 - snprintf.h。这是导致错误的代码行:
__declspec(dllimport) int __cdecl snprintf(char *buffer, size_t count, const char *format, ...);
我相信这是因为VC 2015已经定义了snprintf。 See this page for more info
该页面上的解决方案实际上与注释掉这一行相同,对我来说不起作用,因为它会导致项目中出现很多其他错误。另外正如我所说,这在Visual Studio 2013中没有问题编译,所以我想知道是否有其他人遇到过类似的问题并且有办法解决这个错误。
感谢。
答案 0 :(得分:3)
我找到了一个可能不太理想的解决方案,但它确实允许在Visual Studio 2015中构建解决方案而不会出错。
在项目属性中,我将“Platform Toolset”设置为来自VS 2013的旧版v120_xp(VS 2015提供v140_xp)。
这远非完美,因为它需要VS 2013与VS 2015一起安装,显然我无法利用v140平台工具集中的任何新功能。
答案 1 :(得分:0)
链接中给出的答案是正确的:排除重新定义(使用_MSC_VER
宏)。如果这导致其他错误,您可能忘记了#endif
。但由于您没有显示代码或其他错误,我们无法确定。