我想在我的错误处理程序中把原程序暂时挂起,等待错误处理dll响应之后再结束进程,怎么办?
以下是我的错误处理程序
Function ErrPro()
    Dim ErrProc As New ErrPro
    ErrProc.ProName = "PicViewer2"
    ErrProc.ErrNum = Err.Number
    ErrProc.ErrDes = Err.Description
    ErrProc.RepErr mhwnd '调用错误处理dll
    '这里应该加点什么? 
    Unload frmPicture '结束运行
    Unload frmControl
End Function
请诸位不吝赐教!

解决方案 »

  1.   

    你将DLL的线程模块改成单线程看看.
      

  2.   

    Function ErrPro()
        Dim ErrProc As New ErrPro
        ErrProc.ProName = "PicViewer2"
        ErrProc.ErrNum = Err.Number
        ErrProc.ErrDes = Err.Description
        ErrProc.RepErr mhwnd '调用错误处理dll *** 实际会执行完这句再执行下面的程序啊?
        '这里应该加点什么? 
        Unload frmPicture '结束运行
        Unload frmControl
    End Function
      

  3.   

    或者在错误处理dll中进行挂起。
      

  4.   

    这个是我的DLL中的代码
    Public Function ErrPro(ProName As String, ErrNum As Integer, ErrDes As String)
        Dim strver As String
        OSPlat = frmErrRep.SysInf.OSPlatform
        OSVer = frmErrRep.SysInf.OSVersion
        OSBuild = frmErrRep.SysInf.OSBuild
        Select Case OSPlat
            Case 0
                strver = "其他"
            Case 1
                strver = "Windows 9X 系列"
            Case 2
                strver = "Windows NT 系列"
        End Select
        frmErrRep.Caption = ProName & "错误报告"
        frmErrRep.Label1.Caption = ProName & "出现错误,即将关闭。" + Chr(13) + "我们对此造成的不便深表歉意。" + Chr(13) + "您可以选择发送此错误报告或不发送。"
        frmErrRep.txtRep.Text = "错误号:" & Str(ErrNum) + vbCrLf + "错误描述:" & ErrDes
        frmErrRep.txtSysInfo.Text = "操作系统类型:" + strver + vbCrLf + "版本号:" + Format(OSVer, "0.00") + "." + Format(OSBuild, "####")
        frmErrRep.Show
        '是不是在这里进行挂起?怎么写?
    End Function
    指导一下
      

  5.   

    楼主指的挂起具体是想实现什么呢?
    在调用 ErrProc.RepErr mhwnd 这句的时候程序自然在执行错误处理,而该句后面的程序将会在该句执行完返回后才继续执行啊!?
      

  6.   

    frmErrRep.Show
    在这句之后,显示错误报告窗口
    但是在这里执行完之后,就立刻会回到结束程序的语句(unload)进行
      

  7.   

    确保你的DLL非进程外部件,由可以...
    将 mErrRep.Show
    改成 mErrRep.Show 1
    在类内部使用模式窗体显示 mErrRep