gpt4 book ai didi

c++ - crtdbg.h 是否与 DirectX 冲突?

转载 作者:太空宇宙 更新时间:2023-11-04 12:08:22 25 4
gpt4 key购买 nike

我刚刚发现了隐藏的 gem crtdbg.h,它使内存泄漏检测变得更加容易。不幸的是,当我今天将 DirectX 链接到我的程序时,出现了一些我以前从未见过的错误。

1>e:\program files (x86)\microsoft directx sdk (june 2010)\include\d3dx10math.h(425): error C2059: syntax error : 'constant'
1>e:\program files (x86)\microsoft directx sdk (june 2010)\include\d3dx10math.h(425): error C2091: function returns function
1>e:\program files (x86)\microsoft directx sdk (june 2010)\include\d3dx10math.h(425): error C2802: static member 'operator new' has no formal parameters
1>e:\program files (x86)\microsoft directx sdk (june 2010)\include\d3dx10math.h(426): error C2059: syntax error : 'constant'
1>e:\program files (x86)\microsoft directx sdk (june 2010)\include\d3dx10math.h(426): error C2090: function returns array
1>e:\program files (x86)\microsoft directx sdk (june 2010)\include\d3dx10math.inl(1003): error C2761: 'void *(__cdecl *_D3DXMATRIXA16::operator new(void))(size_t)' : member function redeclaration not allowed
1>e:\program files (x86)\microsoft directx sdk (june 2010)\include\d3dx10math.inl(1003): fatal error C1903: unable to recover from previous error(s); stopping compilation

似乎当 crtdbg 覆盖 new 运算符时,它破坏了 DirectX SDK 中的某些内容(如果您没有注意到错误,我正在使用 DirectX 11 SDK)。有这样的记录吗?一些搜索没有产生任何结果。我真的希望我能继续使用这些内存调试工具,如果有任何解决方法,我将不胜感激!

最佳答案

好的,我想通了。我找到了 this post via Google. (我希望 Stack Overflow 在我输入此内容时在侧边栏上向我显示它!或者它确实显示了但我错过了它......)。

基本上,我需要将 crtdbg.hstdlib.h_CRTDBG_MAP_ALLOC 的定义移动到单独的 header 中,并使用项目属性页面中 C/C++>> Advanced 下的 Forced Include File 选项强制在任何地方包含文件。这似乎使它覆盖了所有其他 new 覆盖。

关于c++ - crtdbg.h 是否与 DirectX 冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10969502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com