IDirect3DVertexDeclaration9
分配的两个FindNextValidTechnique()
对象被释放但未被销毁。在PIX中,状态“App Refs”为“0”,但状态“Destruction”为“Never”。IDirect3DIndexBuffer9
对象已释放但未销毁。在PIX中,状态“App Refs”为“0”,但状态“Destruction”为“Never”。在调用函数SetIndices(NULL)
之后,索引缓冲区的内存泄漏消失了。IDirect3DVertexShader9
分配的IDirect3DPixelShader9
和D3DXCreateEffect()
对象已释放但未被销毁。在PIX中,状态“App Refs”为“0”,但状态“Destruction”为“Never”。但是,在我调用SetVertexShader(NULL)
和SetPixelShader(NULL)
之后,两者的内存泄漏消失了。IDirect3DSwapChain9
的{{1}}对象已释放但未被销毁。 CreateAdditionalSwapChain()
曾被调用,但Surface稍后会被释放。在PIX中,它们的状态“App Refs”为“0”,但它们的状态“Destruction”为“Never”。GetBackBuffer()
和IDirect3DDevice9
对象已释放但未被销毁。我检查了PIX和应用程序中所有对象的引用计数。它们都是0.我不知道为什么仍然会发生内存泄漏。我不认为IDirect3D9
等是必要的。有人可以给我一些建议吗?谢谢。
答案 0 :(得分:0)
尝试通过DirectX控制面板使用Debug D3D DLL,打开“Break on Memory Leaks”,你会在调试输出中看到调用堆栈。