Управление ГСБ (Обновлено 1/19/05) – VB 6.0 – База кода

Скачать

Название (оригинал): GDI Management (Updated 1/19/05)

Описание:
Англ (оригинал)That horrible bug found by Lavolpe scared me into spending half the night going over this code with a fine-tooth comb. Minor optimizations and major commenting added. Anyone who downloaded the code before this update will probably want to scrap the old version and grab this one. Also check out the new screenshot. If that’s not stress testing, I don’t know what is!
Inspired by Lavolpe’s “GDI Font Management” submission, this code is a drop-in replacement for common gdi api calls. The benefits of using this code as opposed to the api calls directly are two-fold:
1. Identical fonts, brushes and pens are shared between all procedures who request them. A reference count is kept, and the objects are deleted when no longer in use.
2. Debugging is simple, simply change a few compiler constants and you will receive a debug message if any font, brush, pen, DC, or bitmap handles are leaked.
This code is very fast, because it hashes the gdi objects and uses a linked list to store the necessary information. Actually it’s a bit more complicated than that because the nodes in the list must be looked up by the gdi object when creating an object and by the handle when destroying it. So two linked lists are kept, but only one set of nodes. One is used to lookup by the gdi object and the other by handle.
Рус (машинный)Эта ужасная ошибка найден Lavolpe напугал меня тратить полночи на этот код с частым гребнем. Небольшие оптимизации и основных комментируя добавил. Всем, кто скачал код это обновление, вероятно, захотите отказаться от старой версии и возьми эту. Кроме того, проверить новый скриншот. Если это не стресс-тестирования, я не знаю, что это!
Вдохновленный \”Управление Lavolpe в GDI шрифт\” представление, этот код является заменой для распространенных в GDI API-вызовов. Преимущества использования этого кода в отличие от вызовов API напрямую два раза:
1. Идентичные шрифты, кисти и перья распределяются между всеми процедурами, которые запрашивают их. Счетчик ссылок, а объекты удаляются, когда больше не используется.
2. Отладка простого, достаточно просто изменить несколько констант компилятора и вы получите сообщение отладки, если любой шрифт, кисть, перо, DC, или растровое изображение ручки слил.
Этот код очень быстро, потому что хэши объектов GDI и использует связанный список, чтобы сохранить необходимую информацию. На самом деле это немного сложнее, потому что узлы в списке должны быть рассмотрены до объектов GDI при создании объекта и за ручку, когда его разрушают. Поэтому два связанных списков хранятся, но только один набор узлов. Один используется для поиска объекта GDI и другой ручкой.

база кода