VB6 IE框架/ WebBrowser导致NT.dll错误

时间:2010-10-02 20:42:42

标签: vb6 browser ieframe.dll

我们有一个遗留的VB6应用程序,它在Windows XP Professional SP 3上运行得很好,直到最近我们添加了一个IE框架控件,以便我们可以在窗体上显示静态本地HTML文件。而且,在我关闭应用程序之前它一切正常。然后,它报告以下错误消息(一致):

错误模块ntdll.dll,版本5.1.2600.5755,邮票49901d48

这是Visual Basic项目文件中的引用:

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

我们通过执行以下操作来使用它:

  1. 开发机器正在运行Win7 + Vb6 IDE。
  2. 将组件引用添加到位于C:\ Windows \ SysWow64 \ ieframe.dll的“Microsoft Internet Controls”
  3. 在设计时将控件放在表单上。
  4. 通过调用
    Form.Show vbModal
    以模态方式显示该表单当我使用默认表单实例
    frmMyForm.Show vbModal
    以及使用本地实例
    Dim MyForm as New frmMyForm
    MyForm.Show vbModal
  5. 时,会发生错误
  6. 调用WebBrowser.Navigate“staticPage.html”
  7. 当用户按下按钮时,按钮单击事件返回用户选择并且表单被丢弃。
  8. 退出应用程序 - 这是我收到错误的地方。
  9. 我一直在寻找网络,并且还没有找到很多人仍然试图以这种方式使用VB6。所以,我想知道是否有人可以在stackoverflow上帮助我。非常感谢任何帮助!

    [更新]并且,情节变浓。我使用该Web组件制作了一个示例应用程序,以确保它导致错误。但是,当它关闭时,我没有像退出现有/旧版vb6应用程序时那样遇到错误。我会做更多的调查。

2 个答案:

答案 0 :(得分:1)

如果碰到同一个问题(原始海报和我当时的同事),请跟进此事......

应用程序正在使用VBCorLib库,并且它的一些字符串操作类错误地使用了直接内存访问。阅读更多this VBCorLib forum post

答案 1 :(得分:0)

事实证明,问题是我试图删除浏览器加载的临时文件。它现在工作,我已将删除文件代码移动到表单卸载事件。