What could've changed in VS 2012 to break my C++ application?

♀尐吖头ヾ 提交于 2019-12-13 16:32:59

问题


I have a C++ application that breaks when I set the Platform Toolset to VS 2012(v110) and VS 2013. It works however if I target VS2012 with Windows XP support. If I target VS2008 or VS2010, it works fine. I only have a problem when running the application without a debugger attached, and compiled in release mode.

I've tried to analyze what happened, but I seem to be getting those special "impossible" errors caused by some kind of memory corruption bug.

The only special thing I can think of is that I also use a library in this application. This library has it's platform toolset set to VS 2010. The application will still crash even if the library is built in debug mode. Also, both the library and application are 32bit applications.

Where should I start looking for why my app is broken? The application itself is quite simple and I see no immediate undefined behavior. However, the library is another story and is quite complex and involved, so I need pointers as to what to look for.


回答1:


Possibly you have a heap corruption bug that is being "fixed" by the fault tolerant heap and the new compiler tags the executable as not needing the fault tolerant heap.



来源:https://stackoverflow.com/questions/19959654/what-couldve-changed-in-vs-2012-to-break-my-c-application

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!