【问题标题】:VB6 Application Silently Crashes on Startup/Form LoadingVB6 应用程序在启动/表单加载时静默崩溃
【发布时间】:2012-01-03 20:28:17
【问题描述】:

我有一个最初加载的 VB6 应用程序(用于输入许可证密钥的小提示,仅在第一次时)。它在我的机器上运行良好(Windows 7)。

我抱怨它在别人的机器(xp 和 7)上崩溃,所以我做了一个 Windows XP 虚拟机。我在虚拟机上安装了它,它崩溃了。我想看看它在哪里崩溃,所以我在虚拟机上安装了 Visual Studio,这样我就会得到一个调试提示。当我再次运行该程序时,它工作了。

我对 C++ 比较熟悉,遇到过这类问题,所以我认为这是某种运行时问题。

我发现了这个 VB6 SP6 Redistributable Runtime:

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=24417

我安装了它,但它仍然无法运行。

有什么想法可以从这里开始吗?

编辑:

我试过depends.exe,它只显示MSJava,听说可以忽略。 depends.exe 是否还显示所需的 .ocx(Active X 控制器?)之类的内容?

此外,在 cmd 提示符下,似乎没有填充 %errorlevel%。这是 VB6 的事情,还是表明这确实是崩溃而不是用户退出?

【问题讨论】:

  • 在没有 Visual Studio 的 VM 或其他 PC 中打开 Dr Watson 错误崩溃报告,并在您让它崩溃时分析崩溃转储。它应该告诉你它在哪个函数中崩溃了。另外,检查你的编译设置。确保所有安全设置都已打开,例如边界检查等。
  • 您的可执行文件中有清单吗?没有它会更好吗?
  • 尝试检查 Windows 事件日志。
  • 你能比“它崩溃”更具体,还是它真的只是消失了,在屏幕或事件日志中没有任何指示?

标签: vb6 crash runtime redistributable


【解决方案1】:

打开 Visual Basic 项目并检查“项目”菜单下的“参考”和“组件”。

由于安装了 VB 运行时会崩溃,因此很可能是您在项目中引用的组件在被测客户端上不存在(或未注册)。

这应该是一个简单的修复。

【讨论】:

  • 是的,我就是这种情况。在项目中引用了“Microsoft office 14.0 access 数据库引擎对象”但在系统中安装了“Microsoft office 16.0 access 数据库引擎对象”。安装之前的版本后崩溃消失了。
【解决方案2】:

我在我的 Windows 7 电脑上遇到了同样的问题。 我已经卸载了所有东西,将我的 Windows 主题更改为 Windows Classic。

我更改了 VB 安装文件的以下属性。 右击 setup.exe 并转到属性并在兼容性选项卡中将兼容模式更改为 windows XP SP2。并在设置中取消选中以下复选框。

  • 禁用视觉主题
  • 禁用桌面合成
  • 在高 DPI 设置下禁用显示缩放。
  • 以管理员身份运行此程序

并已完成安装。

接着从这里安装 VB 6 service pack 6。 http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=24417

希望对您有所帮助。

【讨论】:

    【解决方案3】:

    它可能需要除运行时之外的其他东西,您是否尝试过在它崩溃的机器上使用dependency walker http://www.dependencywalker.com/ 查看它?

    它应该很快指出任何缺失的参考资料。

    【讨论】:

    • 我试过 Depends.exe,但它只显示 MSJava 丢失,我读过我应该忽略它。
    • 它仍然可能引用了某些东西,您是否尝试过创建应用程序的包,查看运行时包中包含的文件以及如何创建要分发的 PDW 包。 support.microsoft.com/kb/192461 它可能正在寻找机器上除了引用之外不存在的其他东西,例如目标机器上其他地方存在或根本不存在的文件/注册密钥的硬编码路径。
    【解决方案4】:

    也许再试一次,创建一个新的虚拟机,但安装远程调试器而不是完整的 VS。

    【讨论】:

      【解决方案5】:

      您应该为您的应用程序创建一个安装程序。可能存在比 VB6 运行时更多的依赖项。一个好的安装工具至少会为您检测一些必要的依赖项。看看this questionthis question

      【讨论】:

        猜你喜欢
        • 2016-09-02
        • 1970-01-01
        • 1970-01-01
        • 2014-10-30
        相关资源
        最近更新 更多