VB6在Win-10上,多媒体控件(MCI32.OCX)在IDE中会导致Windows崩溃(蓝屏)。

4

......但编译后的应用程序运行良好。这是一个大型(~500k LOC)成熟的应用程序,我在Windows-10上维护了多年,没有任何未解释的问题。我刚刚换了一台新电脑(联想笔记本电脑),安装了所有的东西,包括VB6 IDE。这一切都很顺利,所以我加载了应用程序,并在IDE中运行它,结果立即出现了BSOD。我将崩溃语句缩小到了应用程序开启横幅屏幕上的MMControl1.Command "Open"。它要打开的文件存在,而且其他环境与之前的开发机器相同。

请注意,我已经在至少半打Win-10机器和几个Win-11机器上安装了VB6 IDE,没有出现任何问题,事实上,我从来没有让这些机器中的任何一个出现过BSOD。我还在问题电脑上运行了Win-XP虚拟机中的VB6 IDE,(如预期)应用程序在那里运行时没有出现任何问题。再次说明,即使在问题电脑上,编译后的程序也能正常工作,而且在IDE中,这个大型程序的其他部分也能正常工作(尽管没有使用多媒体控件)。

有什么想法可以尝试吗?谢谢!


1
你以管理员身份启动了IDE吗?如果是的话,尽管文件确实存在,但管理员账户可能无法访问它,例如,它位于用户映射的网络共享上,但管理员没有这样的映射。 - Hel O'Ween
1
MCI32在蓝屏电脑上的版本与其他不崩溃的个人电脑上的版本是否相同?我指的是您可以在文件属性/详细信息选项卡中看到的版本号。 - StayOnTarget
感谢提供几个要检查的事项。文件访问并不是问题所在;程序在烦人的语句之前和之后都能访问其他具有相同权限的文件。检查版本是个好主意,我本来抱有希望,但是没有,它们完全一样... - Mark Moulding
尝试禁用VB IDE的DEP功能。 - wqw
也许与此相关 https://stackoverflow.com/questions/52101783/what-files-used-to-compile-a-vb6-application - StayOnTarget
显示剩余12条评论
2个回答

2

问题似乎已经解决。我还没有进行全面测试,但是看起来在兼容模式下使用降低的颜色模式(我使用了65536种颜色)会导致崩溃。关闭此兼容选项后,我不再遇到蓝屏死机,并且在这台(更新的)笔记本电脑上,IDE的图形性能似乎没有受到不必要的影响。


1

简而言之:问题出在驱动程序/BIOS上,而不是Windows或VB6设置。

实际上真的解决了,这一次。上述修复方法(关闭减少色彩模式)确实有效,但实际问题是笔记本电脑的驱动程序(可能还包括BIOS)。这是一台联想ThinkPad E14,在视频问题之外(我还发现另一个与VB6无关的应用程序也会导致蓝屏),USB串行适配器基本上无法使用。

串行适配器本身工作正常,但在发生任何串行通信时,USB键盘和鼠标会卡顿、停止响应,或者丢失点击/字符,导致计算机无法使用。更新驱动程序没有帮助。虽然FTDI和Prolific芯片组都存在相同的问题,但奇怪的是CH340芯片组没有这个问题。(总体而言,这些芯片组被认为是次一级的,但正在变得更加普遍。)

在经过几个小时的搜索和尝试后,没有明显的解决方案,我最终完全放弃了ThinkPad,转而使用翻新的戴尔Latitude 7480,它运行完美。(成本也只有一半,并且还有一块3K屏幕!)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接