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