我得到的印象是这是不可能的,但这是我到目前为止所做的。
Sub Main()
On Error GoTo ErrorHandler
If Command$ = "" Then
LogAction "Begin document lockdown"
LockdownDocs
LogAction "Lockdown complete"
Else
LogAction "Begin document enabling"
EnableDocs
LogAction "Documents have be enabled"
End If
Exit Sub
ErrorHandler:
LogAction "DocLock Error " & Err.Number & "::" & Err.Description
End Sub
我希望它看起来像这样:
Function Main() As Boolean
On Error GoTo ErrorHandler
If Command$ = "" Then
LogAction "Begin document lockdown"
LockdownDocs
LogAction "Lockdown complete"
Else
LogAction "Begin document enabling"
EnableDocs
LogAction "Documents have be enabled"
End If
Return True
Exit Function
ErrorHandler:
LogAction "Error " & Err.Number & "::" & Err.Description
Return False
End Function
我在Visual Studio 2005中看到的最近的是Function Main() As Integer
,但我使用的是VB6。
答案 0 :(得分:8)
通过使用Win32 API调用,可能有一个解决方案here。在本质上:
Private Declare Sub ExitProcess Lib "kernel32" (ByVal uExitCode As Long)
' Exit with ErrorLevel set to 9
ExitProcess 9
请注意,这相当于VB运行时的End
,因此您必须在调用ExitProcess
之前进行任何清理,关闭连接,文件,设备,表单等。