是与视觉C 2017二进制文件兼容的Visual C 2013二进制文件

Are Visual C++ 2013 binaries compatible with Visual C++ 2017 binaries?

本文关键字:二进制文件 Visual 2013 2017 视觉      更新时间:2023-10-16

在我们的C 解决方案之一中,我们使用第三部分库。这些库与VS 2013兼容。现在,我们将解决方案迁移到VS 2017,发现某些第三方库不具有vs 2017兼容版本。

因此,我们尝试使用VS20173中的一些VS2013兼容库,并且尝试的API调用正常工作。

我可以假设库与vs 2017可执行文件一起使用,没有任何问题?

一般 - 否。AFAIK,VC 2015(又名Toolset V140(和VC 2017(又名Toolset V141(已据说是二进制兼容的。没有提出这样的陈述WRT VC 2013,我相信有破坏的变化(例如sizeof(list(等(。

它可能起作用,但可能会导致难以解决问题

Microsoft语句:

"一种更加严重的变化,破裂的变化会影响二进制兼容性,但是这些二进制兼容性仅发生在视觉工作室的主要版本之间。例如,在Visual Studio 2013和Visual Studio 2015之间。" <<<<<<<<

请参阅https://learn.microsoft.com/en-us/cpp/porting/visual-cpp-change-history-2003-2015

没有任何保证,但是视觉C 编译器的二进制兼容性通常比官方宣布的要好。只需确保您不会在不同的运行时创建/破坏对象,传播异常,并且不将STL相关的对象作为参数传递。

如果第三方库揭示了C样式接口并将其编译为DLL,则任务甚至更容易。因此,您应该查看这些界面并验证它们与一般互操作性指南的不同程度。