Microsoft表示VB6不支持ExitProcess (退出并返回值)。
但是,它表明在某些情况下(如果线程尚未完成,等等),此调用可能会失败。
因此,我想知道,只要您遵守本文中的警告,此调用是否正常(一致:-)。
我可以更进一步,从关注应用程序的Sub或表单调用ExitProcess()。
Update:经过更多的阅读(我在询问之前确实研究过这个问题),我找到了一个建议使用TerminateProcess API代替。我在调查这个选择。
有什么想法吗?
发布于 2010-07-23 16:39:42
最好的选择可能是无论如何创建一个Sub主入口点,并从那里调用ExitProcess,而不是从类或表单调用。或者(这就是我要做的)从表单卸载事件中调用ExitProcess,并具有一个主要入口点,如:
Sub Main
'code
Launch Form
Exit Main然后:
Form_Unload
'code
ExitProcess
End sub 'Form_Unload因此,ExitProcess将是您执行的最后一段代码。它不会很漂亮,而且您可能会泄漏一些句柄之类的东西,但是NT4和更高级别的用户无论如何都很擅长处理这个问题。换句话说,从Sub驱动应用程序并在退出之前调用API。
注:这是由Kprobst发布的,但它是在一个帖子的末尾,有一个错误的答案。所以我把它重新贴在这里是为了清楚。
发布于 2010-06-17 19:40:27
你可以用卡尔彼得森的创建控制台应用程序的方法从VB6?然后使用Con.ExitCode = 1 (如第二个示例所示)。
他正在发布一个免费的外接程序vbAdvance,帮助您构建控制台应用程序。
发布于 2013-04-16 16:15:16
看看这个:当vb6程序终止时卸载模块的内容
创建一个全局变量:
Public ErrorLevel As Long创建一个这样的潜艇:
Public Sub UnloadAll()
Dim f As Integer
f = Forms.Count
Do While f > 0
Unload Forms(f - 1)
If f = Forms.Count Then Exit Do
f = f - 1
Loop
ExitProcess ErrorLevel
End Sub在“main”结尾或在“main”表单的卸载代码中,将以下内容放入:
UnloadAll效果很好!
https://stackoverflow.com/questions/3063843
复制相似问题