C++ D3D泄漏,但这是因为我在全局对象中有引用吗?

C++ D3D泄漏,但这是因为我在全局对象中有引用吗?,c++,memory-leaks,direct3d,dxut,C++,Memory Leaks,Direct3d,Dxut,我从D3D11调试运行时获取设备泄漏报告和非零引用计数对话框。我有两个全局类,它们包含指向布局缓冲区的智能指针、顶点着色器和像素着色器 如果我在这些类的析构函数上放置一个断点,我可以看到泄漏报告甚至在删除这些全局变量之前发生,也许正如您所期望的那样 什么是正确的方法来纠正这一点,同时仍然保持这些全球性的呢?我计划添加一个“清理”功能,在关机时手动释放所有东西,而不是依赖智能指针,但这感觉有点像黑客。是的,这有点烦人。传统上,我会忽略这些误报。但是如果你想解决这个问题,重置main底部的智能指针可

我从D3D11调试运行时获取设备泄漏报告和非零引用计数对话框。我有两个全局类,它们包含指向布局缓冲区的智能指针、顶点着色器和像素着色器

如果我在这些类的析构函数上放置一个断点,我可以看到泄漏报告甚至在删除这些全局变量之前发生,也许正如您所期望的那样


什么是正确的方法来纠正这一点,同时仍然保持这些全球性的呢?我计划添加一个“清理”功能,在关机时手动释放所有东西,而不是依赖智能指针,但这感觉有点像黑客。

是的,这有点烦人。传统上,我会忽略这些误报。但是如果你想解决这个问题,重置main底部的智能指针可能就可以了


你知道,除非其他具有静态存储持续时间的对象依赖于这些类。它们不会,对吧?

将智能指针放在单例类中,然后在关闭时删除该类。