Здравствуйте, Аноним, Вы писали:
А>Вот ещё воопрос знатокам: А>В каких случаях и какие объекты WinGDI нужно освобождать/удалять. А>Желательно список. А> А>не хочу стать крахoм W9x
Все объекты, которые создаются API функциями CreateXXX, где XXX название объекта
Если используешь API, то удобна такая связка функций создания-удаления:
Здравствуйте, Vamp, Вы писали:
V>Освобождать надо все, что ты создал. V>Хотя скажу по секрету, неосвобождение объектов обычно не приводит к краху.
Не приводит... если их не много...
Я несколько раз наблюдал прелюбопытнейшую картину — через приблизительно полчаса работы программы (активно работающей с графикой и потребляющей довольно много ресурсов) в Win98 сначала "слетала" графика (с 24-битного цвета на 256 цветов, а затем и на 16), затем шрифты заменялись на стандартный корявый системный шрифт. А затем программа просто вызывала исключение и завершалась. Операционке, правда, от этого легче не становилось Все дело было в том, что глубоко в недрах программы создавались GDI объекты (например, вызовами типа GetDC и т.д.), а потом не освобождались. В результате — происходила нехватка ресурсов и, как следствие, сбой всей системы.
Стоит отметить, что на NT системах подобного не происходило — приложение закрывалось с ошибкой, но система продолжала работать стабильно.
Так что, все ресурсы надо обязательно освобождать.
Здравствуйте, korzhik, Вы писали:
K>Все объекты, которые создаются API функциями CreateXXX, где XXX название объекта K>Если используешь API, то удобна такая связка функций создания-удаления:
K>
Здравствуйте, SergH, Вы писали:
SH>Здравствуйте, ToNIk_A_A, Вы писали:
TNI>>А какие обекты можно взять у W "напрокат"?? TNI>>т.е. захватить и освободить, а не создать и удалить.
SH>А в чём разница? Всё равно в одном случае надо удалять, в другом освобождать.
это-то поятно!
А в каких случаях и какие обекты можно захватить, вот что меня интересует.
Сделать человеку приятное очень просто. Не сделайте ему гадость и ему будет приятно!
Баг — это клоп. Таpакан — это, видимо, фича.