2015-09-22 2 views

ответ

0

Но что произойдет, если мы не удалим ручку GDI, созданную с помощью функции CreatePen?

Тогда ресурсы, связанные с ресурсом, не будут освобождены. Вы получаете утечку памяти.

+0

Утечка резистентности - это не только утечка памяти. –

5
  1. Open Task Manager
  2. Перейдите на вкладку Details (вкладка или процессы в Windows 7 и более ранних версий).
  3. показывать колонку «GDI Objects»
  4. запустить свой процесс, не удаляя объекты GDI, предпочтительно в тугой петле
  5. Наблюдайте свой процесс GDI Количество объектов постоянно увеличивается
  6. В конце концов вы попали GDI object limits. Либо предел для каждого процесса (10 000 в Windows 8.1), либо лимит сеанса для ограничения объекта GDI в 65535
  7. Затем вы начнете видеть странные визуальные артефакты и сбои, поскольку вещи просто не нарисованы правильно, а не только в вашем процесс, но другие процессы также используют GDI (особенно Internet Explorer 8 или более ранние версии, особенно GDI-heavy)
  8. Предполагая, что ваш процесс не сбой, вы увидите, почему вы должны очищать объекты GDI :)
+0

Это была большая проблема в старшей версии Win, особенно большинство приложений было создано в небезопасных интронизации, то есть исходный Win API –

Смежные вопросы