【发布时间】:2012-01-19 12:18:30
【问题描述】:
创建一个新的 VB6 项目。粘贴下面的代码作为您的项目代码。点击运行。看看它是否崩溃...删除或简化此代码中您喜欢的任何内容,然后它会正常工作。 谁能解释一下为什么会崩溃?
到目前为止,这已经在八台 PC 上进行了测试,所有 PC 都运行 Windows XP、Windows Vista、Windows 7、Office 2010 和 Office 2007 的各种组合。在 Visual Basic IDE 中进行测试的是 Visual Basic 6 SP已安装 6 个。
Private Sub Sleep(ByVal nSeconds As Long)
Dim nStart As Long: nStart = Timer
Do
DoEvents
Loop Until (Timer - nStart) >= nSeconds
End Sub
Private Sub Crash()
Dim sTempPath As String: sTempPath = Space(255)
End Sub
Private Sub Form_Initialize()
Sleep 1
Crash
End Sub
附录 #1:
我把它作为一个宏放在 Excel 2010 中,用 Workbook_Open() 替换 Form_Initialize(),果然,当你打开文档时。它崩溃了!
附录 #2:
我在点击“运行”之前为每一行添加了断点,它在到达第一个断点之前就崩溃了。但同样,如果我简化或删除其中的任何内容,它可以正常工作并且不会崩溃。
附录#3:
尝试了 MicSim 删除冒号的建议,它确实没有崩溃。添加回来,再次运行它,它确实没有崩溃。关闭Visual Basic,并输入原始代码,它就崩溃了。
附录#4:
Visual Basic 6 IDE 中的问题详细信息:
问题特征:
问题事件名称:APPCRASH
应用程序名称:VB6.EXE
应用程序版本:6.0.81.76
申请时间戳:3592011f
故障模块名称:VBA6.dll
故障模块版本:6.0.0.8169
故障模块时间戳:358b0c74
异常代码:c0000005
异常偏移量:00026329
操作系统版本:6.1.7601.2.1.0.256.4
区域设置 ID:1033
附加信息 1:7e3b
附加信息 2:7e3beb1e9ccf6d519c5b994ca59a280f
附加信息 3:7b83
附加信息 4:7b833c57ebcf54809fd3aaccd8ea4f46
在线阅读我们的隐私声明:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409
如果在线隐私声明不可用,请离线阅读我们的隐私声明:
C:\Windows\system32\en-US\erofflps.txt
附录#5:
Microsoft Excel 2010 中的问题详细信息:
问题特征:
问题事件名称:APPCRASH
应用程序名称:EXCEL.EXE
应用程序版本:14.0.4756.1000
申请时间戳:4b9c08e8
故障模块名称:VBE7.DLL
故障模块版本:7.0.15.90
故障模块时间戳:4b7b1248
异常代码:c0000005
异常偏移量:00045b6a
操作系统版本:6.1.7601.2.1.0.256.4
区域设置 ID:1033
有关问题的其他信息:
液晶显示器:1033
skulcid:1033
在线阅读我们的隐私声明:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409
如果在线隐私声明不可用,请离线阅读我们的隐私声明:
C:\Windows\system32\en-US\erofflps.txt
【问题讨论】:
-
我在 VB6 SP6、Win 7 x64 SP1 上没有崩溃。
-
在我的 VB6 SP6 上工作。 32 位 XP SP3 机器。
-
你能说出它“崩溃”在哪一行吗?在您的睡眠和崩溃程序开始时设置一个断点,并逐步告诉我们您在哪一行看到了什么问题。
-
用 Excel 2010 尝试了你的建议,但它崩溃了。这是因为 Long 和 String 后面的冒号 (:)。把它去掉,做2行就OK了。制作 2 行但将结肠留在那里仍然会导致崩溃。无法告诉你为什么。
-
@druciferre:既然你有解决方案,不用担心它为什么不起作用。继续做更重要的事情。不要浪费时间去猜测为什么某些 Microsoft 产品不起作用。所有产品都可能有错误,包括 IDE 和编译器。
标签: windows-7 vb6 windows-xp 32-bit