C++ 是VS2015 SP3 C++;运行时与SP2C兼容++;运行时间?
我们有不同的团队,安装了不同版本的VS2015。一些安装了2015 SP2,其他安装了VS2015 SP3C++ 是VS2015 SP3 C++;运行时与SP2C兼容++;运行时间?,c++,visual-studio-2015,C++,Visual Studio 2015,我们有不同的团队,安装了不同版本的VS2015。一些安装了2015 SP2,其他安装了VS2015 SP3 我想知道这些服务包提供的C++运行时是否可压缩。即: Li >我可以运行VS2015 SP3 C++执行文件,并使用VS2015 SP2 DLL(通过C++对象)? 我可以运行VS2015 SP2 C++执行文件,并用VS2015 SP3 DLL(通过C++对象)?< /LI> 我找不到任何有关兼容性的信息…没有Visual Studio 2015 Service Pack 2或3。
我想知道这些服务包提供的C++运行时是否可压缩。即:
-
<> Li >我可以运行VS2015 SP3 C++执行文件,并使用VS2015 SP2 DLL(通过C++对象)?
我可以运行VS2015 SP2 C++执行文件,并用VS2015 SP3 DLL(通过C++对象)?< /LI>
我找不到任何有关兼容性的信息…没有Visual Studio 2015 Service Pack 2或3。你可能在说:和 所以我认为你的问题应该翻译成: VisualStudio 2015更新3对C++标准对象有任何更改吗? 你可以找到一个C++编译器的修改列表: 您的问题特别关注对标准库的更改,如下所示:
- 当销毁在更新2中回归的琐碎对象范围时,我们恢复了调试模式的性能,如在vector中
- 我们已经实现了C++17工作文件中的可交换特征,从提案P0185中添加了[nothrow-]可交换特征。作为一个推测性的C++17特性,特性(
,是可交换的
,是可交换的
,是可交换的
,是可交换的
)只有在使用/std:C++最新版本编译时才可见,是可交换的
上的约束才是活动的std::swap
- 我们已经从vcruntime140.dll和静态库中删除了ETW事件调用,这些调用以前在进程启动和dllmain期间触发
- 新的,我们删除了STL容器使用的常用机械中的符号名长度,例如
,从而降低了C4503警告的可能性。例如,以下类型不再生成警告:std::vector
concurrency::concurrent\u unordered\u map>>
最后一个符号表示符号命名,C++对象内部已更改。这意味着,在一次更新创建的对象中,符号名称不一定与另一次更新预期的符号名称一致。因此,您的问题的答案是:否,对象符号命名在版本之间发生了更改。它们不再保证兼容。
此外,试图找出为什么在一段代码中工作的东西在另一段代码中不起作用,对我来说,这只是对一个小的更新。根据我的经验,我恳求你:让你的整个团队都在完全相同的Visual C++版本上。如果不这样做,将发生以下两种情况之一:
总而言之,正确的答案是:让您的整个团队都使用固定版本的Visual Studio,这样您就不会一直在您或他们的头脑中产生那种烦人的担忧。为什么您会假设不兼容?service pack提供修复,而不是主要的版本升级。您遇到过任何问题吗?顺便说一句,一旦Windows Update更新应用程序,您的应用程序最终可能会以最新版本运行runtime@PanagiotisKanavos:“你为什么会认为不相容?”-也许是多年的痛苦经历?意外地引入这样的不兼容性是非常容易的。@MartinBonner不是真的-这样的事情(核心组件中意外的突破性变化)非常罕见,以至于它们成为新闻,在几天内就被删除和修复。在发行说明中总是提到突破性的更改。C++运行库是所有C++应用程序的核心组件,“是”是一个非常枯燥的答案,从不张贴。所以你只会听到有人回答“不”。您找不到任何关于兼容性问题的信息,这意味着最准确的答案。如果结果是“否”,那么你可以点击提问按钮。我不确定我是否遵循了你的逻辑。MS已经重命名了实际的STL类型,您希望它能正常工作吗?如果部分代码期望运行时提供AAA,而新的运行时已将其重命名为AA,那么情况就不一样了。@MSalters我误解了最后一点。从你的评论来看,这是有道理的。我已经进行了相应的编辑。谢谢,我在一家大公司工作,我们的选择已设置为SP2(抱歉,更新2;-)。我们有一个大问题:VS studio安装程序。没有简单的方法可以恢复到SP2。完全卸载通常无法正常工作。最大的问题是:即使在安装VS2015 Update2时,安装程序似乎也会在网上检查并找到更新的更新,然后安装Update3@我相信我的回答已经解决了最初的问题。您似乎在问后续问题:“如何安装Visual Studio 2015 Update 2并阻止其安装Update 3?”这可能是一个问题,但我鼓励您接受此答案,然后在以下位置打开该问题: