程序错误 由哪些原因造成的呢?
编译后的程序从窗体关闭退出Form_Unload没有问题
可是通过托盘中右击快捷菜单退出,调用Form_Unload:
Private Sub mnuTrayexit_Click()
Call Form_Unload(0)
End Sub
却出现“正在创建错误日志”的“程序错误”,怎么回事?
-------------------------------------------------------
程序错误
xxx.exe产生了错误,会被Windows关闭。您需要重新启动程序。
正在创建错误日志。
-------------------------------------------------------
[解决办法]
Private Sub mnuTrayexit_Click()
Call Form_Unload(0) ' 不管出于什么目的,这种做法是错误的。Form_UnLoad 会在窗体卸载动作发生时调用,但并不表示你调用了Form_UnLoad就会卸载窗体。
Unload Me
End Sub
[解决办法]
先退出消息循环
Unhook '退出消息循环
Unload Me '卸载窗体
Public Sub Unhook()
'将程序从消息环退出。用原窗口的指针替换WindowProc函数的指针,即关闭子类、退出消息循环
Dim temp As Long
temp = SetWindowLong(gHW, GWL_WNDPROC, lpPrevWndProc)
End Sub
[解决办法]
API 调用不完整,或API调用的方法或参数错误