当我不发布DirectX图像时会发生什么?

时间:2010-02-26 00:08:13

标签: image directx

我有一个使用D3DXCreateTextureFromFileEx(...)从DirectX文件加载图像的程序,我忘了在第一次测试期间将image->Release()函数添加到程序的末尾。我知道不发布图像是不好的,但究竟发生了什么(损坏永久性)?

2 个答案:

答案 0 :(得分:2)

我从未使用过DirectX,但这听起来像是一个简单的资源泄漏:你最终分配了在程序运行时OS永远无法回收的纹理。在这种情况下,你“只是”杂乱的视频内存。内存分配存在同样的泄漏(调用new但从不delete或调用malloc但从不调用free或文件指针(从不关闭打开的文件指针) )。

一旦程序停止,任何仍由程序拥有的资源都会被操作系统回收,因此它不是永久性的,并且只要程序运行就会导致“只是”问题。但是,如果在程序运行时没有回收资源,最终可能会导致程序出现问题,因为它不再需要它所需要的空间,或者需要使用您需要浪费的资源的其他程序。

答案 1 :(得分:1)

别担心,Windows会清理你的烂摊子。当进程存在时,Windows总是释放资源,无论进程处理它是什么。