我们最近将企业应用从vs2015升级到vs2017。这需要进行相当多的升级:
Windows SDK将最新版本改为16299 最新的C ++运行时 2017调试支持 其他
我们的应用程序有3层:C#UI层,VC ++ \ CLI中间层和C系统层。
当发生以下情况时: C层中的-malloc内存,在C ++层中是免费的 C ++中的-malloc,C语言中的免费
我得到以下调试断言(仅发布内容!)
起初我们认为我们没有正确升级某些Windows SDK,但它似乎不是那样(在我删除除16299之外的所有SDK并且它仍然复制之后)。我们使用调试支持和C ++运行时做了同样的事情。
出于某种原因,它就像C层和C ++层现在正在使用它们自己的堆。这在升级之前有效,我无法弄清楚改变了什么。
有什么想法吗? 感谢
答案 0 :(得分:0)
所以我们弄清楚了。我的项目文件中有一个错误,其中Release构建使用Debug C-runtime-library(XML节点是DebugLibrary,我们使用MultiThreadedDebugDLL而不是MulthThreadedDLL)