1

この投稿で示唆されているように、VS2015 アップデート 3 用の VC++ 再頒布可能ファイルをインストールすると、VS2015 への以前のアップデートで構築された同じ PC で実行されている他のソフトウェアが壊れる可能性がありますか? 同様に、自分のリリースで update 2 を使い続けると、将来誰かが update 3 の redist をインストールしたときに壊れることはありますか?

4

1 に答える 1

1

New VC Runtime 14.0.24210.0 break MFC app built with VS 2015 Update 2で報告されたバグの説明に基づいて、U3 再頒布可能パッケージはMFC、U2 以前でコンパイルされたアプリを実際に壊します。

  • DLL での使用MFC、つまり静的にリンクされていない、および
  • CMFCToolBarButtonタイプまたは派生のオブジェクトを作成します。

リンクされたページから:

この問題は、クラス CMFCToolBarButton の新しい BOOL メンバー m_bIsDragged が原因で発生します。
したがって、Update 2 と 3 ではメモリ レイアウトが異なります。
コンストラクタで m_bIsDragged を初期化すると、ToolBarButton の背後にある (スタック) メモリが上書きされます。

この問題は、CMFCToolBarButton から派生したすべてのクラスでも発生するはずです。

CMFCColorMenuButton
CMFCCustomizeMenuButton
CMFCDropDownToolbarButton
CMFCOutlookBarPaneButton
CMFCRibbonGalleryMenuButton
CMFCToolBarComboBoxButton
CMFCToolBarDateTimeCtrl
CMFCToolBarEditBoxButton
CMFCToolBarFontComboBox
CMFCToolBarFontSizeComboBox
CMFCToolBarMenuButton
CMFCToolBarMenuButtonsButton
CMFCToolBarSpinEditBoxButton
CMFCToolBarSystemMenuButton


[編集]完全を期すために、DLLのAppLocal展開を使用するアプリは、システム全体にインストールされたコピーを使用しないMFC/CRTため、影響を受けないことを指摘する必要があります。

AppLocal の展開については、「Universal CRTの紹介」の「 Universal CRT を使用するソフトウェアの配布」の箇条書き #6「 2015 年 9 月 11 日更新」で説明されています。

于 2016-07-12T16:34:50.710 に答える