背景: 我有一个涉及DirectX(版本9)的Visual Studio 2013项目。该项目是x86解决方案。在DirectX调试模式下运行时,我无法摆脱所有内存泄漏。
Visual Studio调试的输出:
Direct3D9: :====> ENTER: DLLMAIN(6417d9a0): Process Detach 0000350c, tid=0000363c
Direct3D9: (INFO) :MemFini!
Direct3D9: (ERROR) :Memory still allocated! Alloc count = 975
Direct3D9: (ERROR) :Current Process (pid) = 0000350c
<Solution name> has triggered a breakpoint.
The program '[13580] <Solution name>' has exited with code 0 (0x0).
从上面我了解到该程序已经完成了975项仍然分配但未被销毁或发布的项目。它触发了一个断点是由于DirectX调试中的设置(&#34;打破emory泄漏&#34;)。
因此,在发布实际代码之前,我尝试使用Microsoft随附DirectX的PIX实用程序。通过捕获相同的解决方案,我得到了下面的结果,这表明创建的每个对象也已被破坏。
Screen shot from PIX showing objects
因此,根据VS2013,我留下了内存泄漏,但不是根据PIX。关于如何进行的任何想法?