英文:
VB6 on Win-10, multi-media control (MCI32.OCX) crashes Windows (BSOD) in IDE
问题
...但已编译的应用程序正常运行。这是一个庞大的(约500,000行代码)成熟应用程序,我在Windows 10上维护了多年,没有未解释的问题。我刚刚换了一台新电脑(联想笔记本),安装了所有我的东西,包括VB6 IDE。这一切都进行得很顺利,所以我加载了该应用程序并在IDE中运行它,结果立即出现了蓝屏错误(BSOD)。我将崩溃的语句缩小到应用程序打开横幅屏幕上的 MMControl1.Command "Open"
。它要打开的文件存在,而且环境与以前的开发机器相同。
请注意,我已在至少半打Win-10机器和几台Win-11上安装了VB6 IDE,没有出现问题,事实上,我从未在这些机器上遇到过蓝屏错误。我还在问题电脑上的Win-XP虚拟机中运行了VB6 IDE,并且(如预期的那样)应用程序在那里运行得很正常。再次强调,即使在问题电脑上,编译后的程序也能正常运行,而且在IDE中这个大型程序的其他部分也可以正常运行(尽管没有其他使用多媒体控件的地方)。
有什么想尝试的想法吗?谢谢!
英文:
... but the compiled application runs fine. This is a large (~500k LOC) mature application, which I've been maintaining for many years on Windows-10 with no unexplained issues. I just moved to a new computer (a Lenovo laptop) and installed all my stuff, including the VB6 IDE. This all went smoothly, so I loaded up the application and ran it within the IDE, resulting in an immediate BSOD. I narrowed down the crashing statement to a MMControl1.Command "Open"
on the applications opening banner screen. The file it's supposed to open exists, and everything else is the same environmentally as the previous development machine.
Note that I've installed the VB6 IDE on at least a half-dozen Win-10 machines, and a couple of Win-11, with no problems, and in fact I've never BSODed any of these machines. I've also run the VB6 IDE in a Win-XP virtual machine on the problem computer, and (as expected) the application ran there with no issues. Again, the compiled program works fine even on the problem computer, and everything else in this large program does also in the IDE (no other use of the Multi-Media control, though).
Any ideas of what to try? Thanks!
答案1
得分: 2
显然已解决。我还没有进行广泛的测试,但似乎在兼容模式下以降低的颜色模式运行(我正在使用65536种颜色)会导致崩溃。关闭这个兼容选项后,我不再遇到蓝屏崩溃,而在这台(更新得多)笔记本电脑上,IDE的图形性能似乎没有受到不必要的影响。
英文:
Apparently solved. I have yet to extensively test this, but it appears that running in compatibility mode with a reduced color mode (I was using 65536 colors) leads to this crash. With this compatibility option turned off, I'm no longer getting BSOD crashes, and on this (much newer) laptop, the graphic performance of the IDE doesn't seem to be unduly affected.
答案2
得分: 1
tl;dr: 问题出在驱动程序/BIOS,而不是Windows或VB6安装。
实际上 真正 解决了,这一次。上述修复方法(关闭减少色彩模式)确实起效,但真正的问题原来是笔记本电脑上的驱动程序(可能还包括BIOS)。这是一台联想ThinkPad E14,除了视频问题(我找到另一个应用程序也会导致蓝屏,与VB6无关),USB串行适配器基本上不能使用。
串行适配器本身可以正常工作,但在发生串行流量时,USB键盘和鼠标会卡住、挂起,或者丢失点击/字符,以至于电脑无法使用。更新驱动程序没有帮助。这个问题在FTDI和Prolific芯片组上都存在,但奇怪的是在CH340芯片组上却没有(通常认为这些芯片组次于其他两者,但正在变得更加普及)。
在没有明显解决方案的情况下(经过数小时的谷歌搜索和尝试),我最终完全放弃了ThinkPad,转而使用了翻新的戴尔Latitude 7480,它完美地运行。(还有一半的成本,而且还有3k屏幕!)
英文:
tl;dr: The problem was the drivers/BIOS, not Windows or the VB6 setup.
Actually really solved, this time. The above fix (turning off reduced color mode) did work, but the real problem turned out to be the drivers (and possibly the BIOS) on the laptop. It was a Lenovo ThinkPad E14, and in addition to the video problems (I found another application that would also BSOD, having nothing to do with VB6), USB-serial adapters essentially could not be used.
The serial adapter itself would work fine, but while any serial traffic was occurring, the USB keyboard and mouse would lurch, hang up, or drop clicks/characters to the extent that the computer was unusable. Updating the drivers was of no help. The problem existed equally with both FTDI and Prolific chip sets, but strangely not with the CH340 chip sets. (These are generally considered to be second-tier compared to the other two, but are becoming more prevalent.)
With no apparent solution (after several hours of Googling and trying things), I eventually abandoned the ThinkPad altogether and switched to a refurbished Dell Latitude 7480, which has worked perfectly. (Also half the cost, and a 3k screen to boot!)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论