Вставить IE6 с MFC - PullRequest
       14

Вставить IE6 с MFC

2 голосов
/ 01 августа 2009

Я собираюсь использовать элемент управления ActiveX "Microsoft Web Browser" в приложении MFC, но нам нужен IE6, чтобы поддерживать устаревшие и все эти не такие забавные вещи. Однако в системах, на которых он будет развернут, может быть установлен IE7 или IE8.

Я не особо люблю парни COM / ActiveX, хотя знаю, как обходиться с C ++ и MFC. В течение последних нескольких дней я читал о перенаправлении DLL-файлов и DLL-библиотеках SxS и пытался поиграть в них, но они не слишком далеко продвинули меня (на самом деле, я полагаю, MSDN упоминает, что SxS не работает с системными DLL-библиотеками или OCX файлы).

Я нашел сборщик комплектов для развертывания IE и надеялся, что смогу использовать это в сочетании с перенаправлением DLL, но на данный момент мне не повезло. Буду очень признателен, если кто-нибудь сможет помочь.

Спасибо!

Nathan

Ответы [ 2 ]

1 голос
/ 01 августа 2009

Элемент управления ActiveX Webbrowser в режиме Quirks будет использовать старый рендеринг IE5 (!). (подробности см. IEBlog - в IE [6-8] применяется различие между причудами и стандартами.) Вы упомянули «устаревшие вещи» - из-за того, что я предполагаю, что страницы не так действительны, и, следовательно, режим причуд. 1003 *

Что это означает: встроенные элементы управления для страниц, которые не соответствуют стандартам (большинство устаревших компонентов не поддерживается), будут использовать старый режим рендеринга IE5 Quirks, даже в IE8. Чтобы проверить в них свой код, вы можете использовать MS Internet Explorer совместимость приложений VPC Images - набор образов дисков для Virtual PC (бесплатно, как в пиве) с IE6,7, и 8 соответственно установлены.

Я разрабатываю новые функции для таких унаследованных приложений, и все три браузера ведут себя одинаково в режиме Quirks (IE8 имеет некоторые очень незначительные особенности режима Quirks, но их можно легко обойти).

1 голос
/ 01 августа 2009

Раньше был установщик " Multiple IE ", который взламывал вещи в Windows XP, позволяя сосуществовать нескольким версиям IE. Это было прекращено некоторое время, поскольку страница отмечает:

Несколько IE больше не поддерживаются, и нет никаких планов продолжать поддерживать его!

Эта тактика также, по-видимому, приводила к случайным сбоям IE, работала только на Windows XP и была сломана (хотя бы один раз) обновлением Windows.


Вместо того, чтобы пытаться взломать похожее решение (которое кажется довольно хрупким и, вероятно, будет трудно исправиться с последними исправлениями безопасности), может быть проще рассмотреть совершенно другой подход к проблеме:

Устранить причину:

  • Исправить / обновить базовый устаревший код. В качестве приятного бонуса вы можете получить совместимость с другими, более новыми, основанными на стандартах браузерами. (Правда, иногда такой подход невозможен.)

Контроль окружающей среды:

  • Настройка виртуальной машины под управлением Windows XP с IE6. С помощью виртуальной машины вы можете обеспечить требуемую среду в стабильной, протестированной конфигурации. Также могут быть полезны инструменты развертывания / интеграции (пользователям не обязательно знать, что приложение работает в совершенно отдельном экземпляре Windows XP).

Сумасшедший, но (немного больше) ремонтопригоден *:

  • Если вы не можете исправить основную устаревшую версию, вероятно, она тоже не сильно изменится. Выясните, как на самом деле это исправить, и исправьте его «на лету», чтобы обеспечить совместимость с IE7 / IE8. (То есть отредактируйте сценарии / CSS / содержимое страницы / форматирование / и т. д., чтобы устранить проблемы после загрузки, но до того, как механизм браузера отобразит ее.)

** (Чем пытаться заставить работать несколько версий IE.) *

Это просто идеи, но, надеюсь, они помогут вдохновить что-то полезное. Удачи.

...