1

我们有一个旧版 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; 框架.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. 调用 WebBrowser.Navigate "staticPage.html"
  6. 当用户按下按钮时,按钮点击事件返回用户选择并且表单被处理掉。
  7. 退出应用程序——这是我得到错误的地方。

我一直在寻找整个网络,但找不到很多人仍在尝试以这种方式使用 VB6。所以,我想知道是否有人可以在stackoverflow上帮助我。任何帮助深表感谢!

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

4

2 回答 2

1

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

该应用程序正在使用VBCorLib库,并且它的一些字符串操作类不正确地使用了直接内存访问。在此 VBCorLib 论坛帖子中阅读更多信息。

于 2011-04-06T17:20:51.127 回答
0

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

于 2010-10-05T01:39:30.617 回答