Вопрос: есть софтина: 2 драйвера + клиентский модуль (все на COM). Запускаешь — все круто. Но через 2 часа после старта начинается полная фигня: прекращается отрисовка всех окон, ВСЕ новые запускаемые софтины идут с кривыми шрифтами и графикой. И такая дрянь длится минут 15 потом все вообще вырубается. Хотя никаких активных дествий со стороны моего приложения не происходит. Ингода еще начинает вылетать загадочное окошко с ошибкой, цитирую "A required resource was". Если кто-нить раньше с таким сталкивался, напишите, а то у меня башка уже кругом идет.
Здравствуйте Serge, Вы писали:
S>Вопрос: есть софтина: 2 драйвера + клиентский модуль (все на COM). Запускаешь — все круто. Но через 2 часа после старта начинается полная фигня: прекращается отрисовка всех окон, ВСЕ новые запускаемые софтины идут с кривыми шрифтами и графикой. И такая дрянь длится минут 15 потом все вообще вырубается. Хотя никаких активных дествий со стороны моего приложения не происходит. Ингода еще начинает вылетать загадочное окошко с ошибкой, цитирую "A required resource was". Если кто-нить раньше с таким сталкивался, напишите, а то у меня башка уже кругом идет.
Здравствуйте Alex Fedotov, Вы писали:
AF>Здравствуйте Serge, Вы писали:
S>>Вопрос: есть софтина: 2 драйвера + клиентский модуль (все на COM). Запускаешь — все круто. Но через 2 часа после старта начинается полная фигня: прекращается отрисовка всех окон, ВСЕ новые запускаемые софтины идут с кривыми шрифтами и графикой. И такая дрянь длится минут 15 потом все вообще вырубается. Хотя никаких активных дествий со стороны моего приложения не происходит. Ингода еще начинает вылетать загадочное окошко с ошибкой, цитирую "A required resource was". Если кто-нить раньше с таким сталкивался, напишите, а то у меня башка уже кругом идет.
AF>Teкут ресурсы GDI.
Дык это ежу понятно, что что-то с ресурсами. А где может происходиь утечка и какого она рода??
Здравствуйте Serge, Вы писали:
S>Здравствуйте Alex Fedotov, Вы писали:
AF>>Здравствуйте Serge, Вы писали:
S>>>Вопрос: есть софтина: 2 драйвера + клиентский модуль (все на COM). Запускаешь — все круто. Но через 2 часа после старта начинается полная фигня: прекращается отрисовка всех окон, ВСЕ новые запускаемые софтины идут с кривыми шрифтами и графикой. И такая дрянь длится минут 15 потом все вообще вырубается. Хотя никаких активных дествий со стороны моего приложения не происходит. Ингода еще начинает вылетать загадочное окошко с ошибкой, цитирую "A required resource was". Если кто-нить раньше с таким сталкивался, напишите, а то у меня башка уже кругом идет.
AF>>Teкут ресурсы GDI.
S>Дык это ежу понятно, что что-то с ресурсами. А где может происходиь утечка и какого она рода??
Утечка ресурсов GDI, это когда объекты GDI создаются, но не освобождаются. Объекты GDI включают в себя device contexts, bitmaps, brushes, pens, fonts, metafiles, enhanced metafiles, regions, palettes and color spaces. Не освобождаться они могут потому что их просто забыли освободить, либо потому что их пытаются освободить, когда они выбраны в контекст устройства.
Здравствуйте Snax, Вы писали:
S>Здравствуйте Alex Fedotov, Вы писали:
AF>>А Checked Build здесь чем поможет?
S>Как минимум, скажет чего и сколько вытекло. BoundsChecker конечно, тут полезнее.
Большое спасибо за советы, но, господа, как вы можете объяснить следующий эффект: сегодня вставил в фунцию инициализации драйвера дополнительный Lock ( AfxOleLockApp() и AfxOleUnlockApp() на выходе соответственно)- и (как факт) уже почти сутки все работает без сбоев... или все-таки проблема осталась?
Здравствуйте Serge, Вы писали:
S>Большое спасибо за советы, но, господа, как вы можете объяснить следующий эффект: сегодня вставил в фунцию инициализации драйвера дополнительный Lock ( AfxOleLockApp() и AfxOleUnlockApp() на выходе соответственно)- и (как факт) уже почти сутки все работает без сбоев... или все-таки проблема осталась?
Это могло быть действительно проблемой, если один HDC использовался одновременно из нескольких потоков, хотя трудно утверждать что-либо определенное не зная ничего о программе.
В любом случае, на Win2K Тask Manager умеет показывать per-process счетчики объектов GDI. Посмотри, как они себя ведут в том и в другом случае.