简介:
我正在重构win32应用程序,我使用VS 2008。该应用程序由我自己的dll和第三方dll组成。
问题:
当我在调试模式下运行应用程序并执行某些操作时,会引发错误:应用程序已触发断点,堆已损坏。
采取的措施:
我在网上搜索了这个错误,发现这个错误可能是因为项目中的 dll 使用了不同的构建标志(多线程调试/MD
和多线程调试 dll /MDd
)(这导致他们使用不同的 c 运行时库,并且为每个库维护自己的内存使用列表,因此可能导致堆损坏)。我检查了我的 dll - 它们都有相同的标志:调试多线程 dll。所以我认为第三方 DLL 之一可能是用多线程调试标志构建的。
问题:
- 是否有可能找出构建了哪个标志 3-rd 方库,如果可以,我该怎么做。
- 我如何对您的不同构建标志问题进行分类?
- 我对该错误的猜测是由于不同的构建标志是正确的吗?