2

我在一个大型的 VB6 应用程序上工作,我在解决关闭程序时出现的一些错误时遇到了很多困难。

所有这些错误都出现在最后一个代码行之后,因此我无法调试。我知道这些错误是“自动化错误”。我尝试在 Visual Studio 2010 中附加该过程,但出现以下错误: Exception de première chance à 0x7643c41f dans VB6.EXE : 0xC000008F: Floating-point inexact result。

我如何通过内存指针知道错误发生在哪个 DLL 中?

编辑:有关 WinDbg 的更多信息

(166c.2758): Access violation - code c0000005 (first chance)  
First chance exceptions are reported before any exception handling.  
This exception may be expected and handled.  
eax=01f8b004 ebx=00000800 ecx=01f16ce4 edx=00000000 esi=01f8b004 edi=006d0a68  
eip=729926a6 esp=0018f648 ebp=75850dfb iopl=0         nv up ei pl zr na pe nc  
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010246  
MSVBVM60!IID_IVbaHost+0x24066:  
729926a6 ff7174          push    dword ptr [ecx+74h]  ds:002b:01f16d58=????????  
4

1 回答 1

1

这部分引起了我的注意:

"Floating-point inexact result."

尝试这个:

转到:项目 > 项目属性 > 编译 > 高级优化

检查“删除浮点错误检查”和“允许未舍入浮点运算”框是否未勾选。如果已勾选,请取消勾选,保存并重新运行项目。这允许 Visual Basic 在浮点数据类型及其相关表达式导致编程环境崩溃之前检查它们是否存在问题。然后,您可以修复它发现的那些错误(例如除以零),而不是简单地跳过它们,并且当您对所有内容都已修复感到高兴时,可以选择将优化设置设置回去。

于 2013-11-07T13:06:11.767 回答