![]() |
|
|
![]()
|
|
| nnemo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 26.6.2008 Репутация: нет Всего: нет |
Доброго всем времени суток!
Столкнулся с проблемой, и нужна помощь. Есть приложение, использующее IWebBrowser2. Браузер используется неколько "извращенным" способом - для вынесения каждого экземпляра браузера в отдельный процесс, написал 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 регистрацией сервера вроде все нормально. Может быть кто-нибудь встречался с чем-то подобным, или хотя бы подскажет способ локализовать проблему, или направит в нужную сторону? Заранее СПАСИБО! |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
nnemo, качать PDB символы для системных либ, курить стек и полученную информацию из PDB, писать ахтунги в MS ....
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| nnemo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 26.6.2008 Репутация: нет Всего: нет |
Спасибо за ответ.
Все это сделано, только причина все равно мне не понятна: Вот скриншоты стека вызовов и окна дизассемблера... http://se.mk.ua/pbl/ Дополнительно: - ошибка никогда не проявляется под Windows XP SP2 - ошибка проявляется случайным образом под Win 7 - Когда я пробую открыть несколько вкладок одновременно в таб-контроле моего клиентского приложения (наприме 10 табов с разными адресами), то 5 экземпляров atl-сервера падают с вышеуказанной ошибкой, а 5 - загружаются нормально - Иногда веб-страница загружается успешно и серверный процесс работает нормально до закрытия вклаки - иногда ошибка появляется при попытке загрузить about:blank - включение/отключение UAC на ошибку не влияет Есть идеи? |
|||
|
||||
| nnemo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 26.6.2008 Репутация: нет Всего: нет |
Я обнаружил, что проблема как-то связана с IMessageFilter в клентском приложении.
По той причине, что это никогда не вызывало проблем и не приводило к дедлоку под Win XP, я искал проблему только на стороне сервера. Теперь я временно отключил регистрацию IMessageFilter для клентского потока и поведение программы существенно изменилось. Я еще не до конца понял, почему так происходит, но теперь я знаю область, где искать причины проблемы. Всем большое спасибо. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |