我有一个使用D3DXCreateTextureFromFileEx(...)
从DirectX文件加载图像的程序,我忘了在第一次测试期间将image->Release()
函数添加到程序的末尾。我知道不发布图像是不好的,但究竟发生了什么(损坏永久性)?
答案 0 :(得分:2)
我从未使用过DirectX,但这听起来像是一个简单的资源泄漏:你最终分配了在程序运行时OS永远无法回收的纹理。在这种情况下,你“只是”杂乱的视频内存。内存分配存在同样的泄漏(调用new
但从不delete
或调用malloc
但从不调用free
或文件指针(从不关闭打开的文件指针) )。
一旦程序停止,任何仍由程序拥有的资源都会被操作系统回收,因此它不是永久性的,并且只要程序运行就会导致“只是”问题。但是,如果在程序运行时没有回收资源,最终可能会导致程序出现问题,因为它不再需要它所需要的空间,或者需要使用您需要浪费的资源的其他程序。
答案 1 :(得分:1)
别担心,Windows会清理你的烂摊子。当进程存在时,Windows总是释放资源,无论进程处理它是什么。