Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Особенности использования IWebBrowser2 в Windows 7, Падение прложения под "Семеркой" - нужна 
:(
    Опции темы
nnemo
Дата 17.6.2010, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 26.6.2008

Репутация: нет
Всего: нет



Доброго всем времени суток!

Столкнулся с проблемой, и нужна помощь.

Есть приложение, использующее IWebBrowser2.
Браузер используется неколько "извращенным" способом smile :

- для вынесения каждого экземпляра браузера в отдельный процесс, написал ATL-сервер, который получает и маршалит
в клиентский процесс интерфейс IOleObject
- в клиентском процессе используется MFC класс (слегка подправленный CHtmlView) с перопределенным CHtmlControlSite,
где в MyControlSite::CreateOrLoad подставляется ан-маршаленный интерфейс, полученный из ATL-сервера

Этот вариант нормально прошел тесты на XP SP2 и Vista Ultimate, и даже на Win 7 (64) "вылеченной", но, вот на двух экземплярах
Win 7 (лицензия, одна из них уже официально активирована, другая еще нет) встретился с проблемой - ATL-сервер падает во время отображения документа (любого, даже about:blank).

Стек упирается в oleaut32.dll, сейчас под рукой снимка call stack нет, но выглядит приблизительно так (по памяти):

oleaut32.dll
oleaut32.dll
oleaut32.dll
rpc4.dll
rpc4.dll
mshtml.dll
mshtml.dll
ieframe.dll
.... дальше не помню

Визуально - документ уже отображен. Ошибка - 0xc0000005 Access violation (reading)

C регистрацией сервера вроде все нормально.

Может быть кто-нибудь встречался с чем-то подобным, или хотя бы подскажет способ локализовать проблему, или направит в нужную сторону? smile

Заранее СПАСИБО! 
PM MAIL   Вверх
jonie
Дата 18.6.2010, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 5
Всего: 118



nnemo, качать PDB символы для системных либ, курить стек и полученную информацию из PDB, писать ахтунги в MS ....


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
nnemo
Дата 25.6.2010, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 26.6.2008

Репутация: нет
Всего: нет



Спасибо за ответ.

Все это сделано, только причина все равно мне не понятна:

Вот скриншоты стека вызовов и окна дизассемблера... http://se.mk.ua/pbl/

Дополнительно:

- ошибка никогда не проявляется под Windows XP SP2
- ошибка проявляется случайным образом под Win 7
- Когда я пробую открыть несколько вкладок одновременно в таб-контроле моего клиентского приложения (наприме 10 табов с разными адресами), то 5 экземпляров atl-сервера падают с вышеуказанной ошибкой, а 5 - загружаются нормально
- Иногда веб-страница загружается успешно и серверный процесс работает нормально до закрытия вклаки
- иногда ошибка появляется при попытке загрузить about:blank
- включение/отключение UAC на ошибку не влияет

Есть идеи?
PM MAIL   Вверх
nnemo
Дата 26.6.2010, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 26.6.2008

Репутация: нет
Всего: нет



Я обнаружил, что проблема как-то связана с IMessageFilter в клентском приложении.
По той причине, что это никогда не вызывало проблем и не приводило к дедлоку под Win XP, я искал проблему только на стороне сервера.
Теперь я временно отключил регистрацию IMessageFilter для клентского потока и поведение программы существенно изменилось.

Я еще не до конца понял, почему так происходит, но теперь я знаю область, где искать причины проблемы.

Всем большое спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0445 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.