调试断言失败! VS升级后无效的堆指针

时间:2018-01-03 19:36:28

标签: c visual-c++ malloc heap free

我们最近将企业应用从vs2015升级到vs2017。这需要进行相当多的升级:

Windows SDK将最新版本改为16299 最新的C ++运行时 2017调试支持 其他

我们的应用程序有3层:C#UI层,VC ++ \ CLI中间层和C系统层。

当发生以下情况时: C层中的-malloc内存,在C ++层中是免费的 C ++中的-malloc,C语言中的免费

我得到以下调试断言(仅发布内容!)

Debug assertion failure

起初我们认为我们没有正确升级某些Windows SDK,但它似乎不是那样(在我删除除16299之外的所有SDK并且它仍然复制之后)。我们使用调试支持和C ++运行时做了同样的事情。

出于某种原因,它就像C层和C ++层现在正在使用它们自己的堆。这在升级之前有效,我无法弄清楚改变了什么。

有什么想法吗? 感谢

1 个答案:

答案 0 :(得分:0)

所以我们弄清楚了。我的项目文件中有一个错误,其中Release构建使用Debug C-runtime-library(XML节点是DebugLibrary,我们使用MultiThreadedDebugDLL而不是MulthThreadedDLL)