VB6 IE frame / WebBrowser вызывает ошибку NT.dll - PullRequest
1 голос
/ 03 октября 2010

У нас есть старое приложение VB6, которое прекрасно работало на Windows XP Professional SP 3 до недавнего времени, когда мы добавили элемент управления IE, чтобы мы могли отображать статические локальные HTML-файлы в форме.И это работает нормально, пока я не иду, чтобы закрыть приложение.И затем он сообщает следующее сообщение об ошибке (последовательно):

Неисправный модуль ntdll.dll, версия 5.1.2600.5755, штамп 49901d48

Вот ссылка в файле проекта Visual Basic:

Object = {EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B} # 1.1 # 0;ieframe.dll

И мы используем его, выполнив следующие действия:

  1. На компьютере разработчика работает Win7 + Vb6 IDE.
  2. Добавьте ссылку на компонент в "Microsoft Internet Controls ", расположенный по адресу C: \ Windows \ SysWow64 \ ieframe.dll
  3. Поместите элемент управления в форму во время разработки.
  4. Показать эту форму модально, вызвав
    Form.Show vbModal
    Произошла ошибкакогда я использую экземпляр формы по умолчанию
    frmMyForm.Show vbModal
    , а также когда я использую локальный экземпляр
    Dim MyForm as New frmMyForm<br/>MyForm.Show vbModal
  5. Вызов WebBrowser.Navigate "staticPage.html"
  6. Когда пользователь нажимает кнопку,событие нажатия кнопки возвращает выбор пользователя и форма удаляется.
  7. Выйдите из приложения - вот где я получаю сообщение об ошибке.

Я искал по всей сети и не смог найти множество людей, которые все еще пытаютсяиспользуйте VB6 таким образом.Итак, мне интересно, если кто-то может помочь мне в стеке потока.Любая помощь очень ценится!

[Обновление] И, сюжет утолщается.Я сделал пример приложения только с этим веб-компонентом, чтобы убедиться, что он вызывает ошибку.Но при закрытии я не испытывал такой ошибки, как при выходе из существующего / устаревшего приложения vb6.Я сделаю немного больше расследований.

Ответы [ 2 ]

1 голос
/ 06 апреля 2011

Последующее действие в случае, если кто-то столкнется с той же проблемой (в то время я и его автор работали вместе) ...

Приложение использовало библиотеку VBCorLib и некоторые из его классов манипулирования строками неправильно использовали прямой доступ к памяти.Прочитайте больше на этом посте на форуме VBCorLib .

0 голосов
/ 05 октября 2010

Оказывается, проблема была в том, что я пытался удалить временный файл, загруженный браузером.Теперь он работает, когда я переместил этот код удаления файла в событие выгрузки формы.

...