В софте изпользуется DirectDraw. Работает на XP с любыми SP. При запуске на 7-ке выявились проблемы: если включить базовую тему(без стекла) и залочить станцию, после разлочки часто вылетает access violation в функции IDirectDrawSurface::GetSurfaceDesc(). Причем поверхность успешно создается. Код (Text): ... HRESULT hRes; hRes = pDD->CreateSurface(&m_ddsd, &m_pSurface, NULL); if(hRes != DD_OK) return hRes; hRes = m_pSurface->GetSurfaceDesc(&m_ddsd); // тут вылетает ... Пробовал на двух машинах. Везде видеокарта атишная.
Этот кусок кода не показателен. Ты в каждой итерации поверхность создаешь чтоле? Islost может помоч. Поможет %в 90.
Это часть моей функции в которой происходит восстановление всех поверхностей. Она вызывается только в случае потерь. Была такая мысль. Этот код я поместил в блок try-except, поймал исключение и сделал проверку IsLost(). Нифига. Поверхность не потеряна. IMHO, в независимости от того потеряна поверхность или нет исключения быть не должно. Повторюсь, что все это происходит если .
я в первом посте написал, что она вылетает, т.е. не возвращает она значение, т.к. до этого момента внутри вызова этой функции выбрасывается исключение.