Что происходит, когда я не выпускаю образ DirectX? - PullRequest
1 голос
/ 26 февраля 2010

У меня есть программа, которая загружает изображение из файла с DirectX, используя D3DXCreateTextureFromFileEx(...), и я забыл добавить функцию image->Release() в конец программы во время первого теста. Я знаю, что не выпускать изображение - это плохо, но что именно происходит (и является ли повреждение постоянным)?

Ответы [ 2 ]

2 голосов
/ 26 февраля 2010

Я никогда не использовал DirectX, но это звучит как простая утечка ресурсов: в итоге вы получаете выделенные текстуры, которые никогда не могут быть восстановлены ОС во время работы программы. В этом случае вы «просто» загромождаете видеопамять. Такая же утечка существует при выделении памяти (вызывая new, но никогда delete или не вызывая, например, malloc, но никогда free) или файловых указателях (никогда не закрывая открытые файловые указатели).

Любой ресурс, все еще принадлежащий программе, восстанавливается ОС после того, как он остановлен, так что он не является чем-то постоянным и вызывает проблемы "просто" на протяжении всего времени работы вашей программы. Однако, если вы не восстанавливаете ресурсы во время работы вашей программы, вы можете столкнуться с проблемами в вашей программе, потому что больше нет места для того, что ей нужно, или для других программ, которым потребуется использовать ресурсы, которые вы тратите.

1 голос
/ 26 февраля 2010

Не волнуйтесь, окна убирают ваш беспорядок. Windows всегда освобождает ресурсы, когда процесс существует, независимо от того, какой процесс его обработал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...