程序异常 由哪些原因造成的呢

程序错误 由哪些原因造成的呢?
编译后的程序从窗体关闭退出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调用的方法或参数错误