gpt4 book ai didi

vb6 - Win7和Win10上msvbvm60.dll的不同版本

转载 作者:行者123 更新时间:2023-12-04 16:04:53 26 4
gpt4 key购买 nike

我们有一个旧版VB6应用程序,该应用程序在Windows 10上某个时刻崩溃,但在Windows 7上没有崩溃。通过VB6 IDE(在任一操作系统上)运行时,它也不会崩溃。

在尝试查找差异时,我发现msvbvm60.dll在Win7和Win10上有明显的不同。具体来说,它具有相同的版本号和大小,但日期不同。随后的二进制比较表明,版本确实不同。

如果我们强制Win10计算机使用msvbvm60.dll的Win7版本,则崩溃已得到修复。任何人都无法阐明这些版本之间的区别吗?我已经确认这两个版本与在Win7和Win10的全新安装中所获得的版本相同,因此这不是由于任何损坏而引起的。

尝试在网格(MSFlxGrd.ocx)上显示信息时发生崩溃。但是,网格大部分时间都可以工作。数据集比平常大,但只有8000行,所以不是极端。该应用程序非常复杂,因此要检查数据或提供更多信息并不容易。

系统事件日志显示以下内容:

Faulting module name: MSVBVM60.DLL, version: 6.0.98.15, time stamp: 0x49b01fc3
Exception code: 0xc00000fd

最佳答案

因此,额外的行也许算在内。但是代码中的某个地方是递归函数。这来自我的程序,该程序将NTStatus代码转换为Windows错误代码。

堆栈是存储函数的局部变量,临时变量,函数参数,返回值和返回地址的地方。程序从1 MB的堆栈空间开始,最后有一个保护页。当堆栈增长到保护页面时,虚拟内存管理器会引发内存异常,虚拟内存管理器会将堆栈增长4KB,并放入一个新的保护页面。您的堆栈中的空闲内存不足,无法增长。

---------------------------
Serenity's Unicode Text Editor
---------------------------
NT Status 0xC00000FD (-1073741571)

Windows Error 0x3E9 (1001)

---------------------------
NT Status Message:

A new guard page for the stack cannot be created.


---------------------------
Windows Error Message:

Recursion too deep; the stack overflowed.


---------------------------
OK
---------------------------

关于vb6 - Win7和Win10上msvbvm60.dll的不同版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48991738/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com