安装 VS2015 更新 3 VC++ 可再发行组件是否会破坏其他软件
Will installing VS2015 update 3 VC++ redistributables break other software
如 this post 中所建议,如果我为 VS2015 更新 3 安装 VC++ 可再发行组件,我可能会破坏使用先前更新构建的同一台 PC 上的其他软件 运行 VS2015?同样,如果我在发布时坚持使用更新 2,当有人为更新 3 安装 redists 时,这是否会在将来某个时候被破坏?
根据 New VC Runtime 14.0.24210.0 breaks MFC app built with VS 2015 Update 2 中报告的错误描述,U3 可再发行组件确实会破坏 MFC
使用 U2 或更早版本编译的应用程序,其中:
- 在 DLL 中使用
MFC
,即非静态链接,并且
- 创建
CMFCToolBarButton
或派生类型的对象。
来自链接页面:
The problem is caused by the new BOOL member m_bIsDragged in class CMFCToolBarButton.
So memory layout differs between Update 2 and 3.
When initializing m_bIsDragged in the constructor, the (stack) memory behind the ToolBarButton is overwritten.
The problem should arise also on all classes which are derived from CMFCToolBarButton:
CMFCColorMenuButton
CMFCCustomizeMenuButton
CMFCDropDownToolbarButton
CMFCOutlookBarPaneButton
CMFCRibbonGalleryMenuButton
CMFCToolBarComboBoxButton
CMFCToolBarDateTimeCtrl
CMFCToolBarEditBoxButton
CMFCToolBarFontComboBox
CMFCToolBarFontSizeComboBox
CMFCToolBarMenuButton
CMFCToolBarMenuButtonsButton
CMFCToolBarSpinEditBoxButton
CMFCToolBarSystemMenuButton
[ EDIT ] 为了完整起见,应该指出使用 AppLocal 部署 MFC/CRT
DLL 的应用程序不受影响,因为它们 not 使用其在系统范围内安装的副本。
AppLocal 部署在“使用通用 CRT 的分发软件”中的第 6 条“2015 年 9 月 11 日更新”中进行了描述,网址为Introducing the Universal CRT.
如 this post 中所建议,如果我为 VS2015 更新 3 安装 VC++ 可再发行组件,我可能会破坏使用先前更新构建的同一台 PC 上的其他软件 运行 VS2015?同样,如果我在发布时坚持使用更新 2,当有人为更新 3 安装 redists 时,这是否会在将来某个时候被破坏?
根据 New VC Runtime 14.0.24210.0 breaks MFC app built with VS 2015 Update 2 中报告的错误描述,U3 可再发行组件确实会破坏 MFC
使用 U2 或更早版本编译的应用程序,其中:
- 在 DLL 中使用
MFC
,即非静态链接,并且 - 创建
CMFCToolBarButton
或派生类型的对象。
来自链接页面:
The problem is caused by the new BOOL member m_bIsDragged in class CMFCToolBarButton.
So memory layout differs between Update 2 and 3.
When initializing m_bIsDragged in the constructor, the (stack) memory behind the ToolBarButton is overwritten.The problem should arise also on all classes which are derived from CMFCToolBarButton:
CMFCColorMenuButton
CMFCCustomizeMenuButton
CMFCDropDownToolbarButton
CMFCOutlookBarPaneButton
CMFCRibbonGalleryMenuButton
CMFCToolBarComboBoxButton
CMFCToolBarDateTimeCtrl
CMFCToolBarEditBoxButton
CMFCToolBarFontComboBox
CMFCToolBarFontSizeComboBox
CMFCToolBarMenuButton
CMFCToolBarMenuButtonsButton
CMFCToolBarSpinEditBoxButton
CMFCToolBarSystemMenuButton
[ EDIT ] 为了完整起见,应该指出使用 AppLocal 部署
MFC/CRT
DLL 的应用程序不受影响,因为它们 not 使用其在系统范围内安装的副本。
AppLocal 部署在“使用通用 CRT 的分发软件”中的第 6 条“2015 年 9 月 11 日更新”中进行了描述,网址为Introducing the Universal CRT.