2

Platform Toolset を VS 2012(v110) および VS 2013 に設定すると C++ アプリケーションが壊れます。ただし、Windows XP をサポートする VS2012 をターゲットにすると動作します。VS2008 または VS2010 をターゲットにすると、正常に動作します。デバッガーを接続せずにアプリケーションを実行し、リリース モードでコンパイルした場合にのみ問題が発生します。

何が起こったのかを分析しようとしましたが、ある種のメモリ破損バグによって引き起こされた特別な「不可能な」エラーが発生しているようです.

私が思いつく唯一の特別なことは、このアプリケーションでもライブラリを使用していることです。このライブラリのプラットフォーム ツールセットは VS 2010 に設定されています。ライブラリがデバッグ モードでビルドされていても、アプリケーションはクラッシュします。また、ライブラリもアプリも32bitアプリです。

アプリが壊れている理由はどこから探せばよいですか? アプリケーション自体は非常にシンプルで、すぐに未定義の動作は見られません。ただし、ライブラリは別の話であり、非常に複雑で関与しているため、何を探すべきかについての指針が必要です。

4

1 に答える 1

0

おそらく、フォールト トレラント ヒープによって「修正」されているヒープ破損のバグがあり、新しいコンパイラが実行可能ファイルにフォールト トレラント ヒープを必要としないタグを付けている可能性があります。

于 2013-11-13T16:52:16.663 に答える