用vb开发了一个软件,该软件调用Mapinfo最为平台,结合视频捕捉功能。编译成可执行文件后,运行该文件后关闭,发现这个可执行文件占用的内存没释放掉。三四次的打开和关闭该文件后出现系统内存资源不足。但我已经在关闭此exe时做了以下处理:Public Sub Form_Unload(Cancel As Integer)    MMControl1.Command = "stop"                      //avi文件播放
    MapInfo.Do "Close All"                           //关闭MapInfo
    If hCapWnd <> 0 Then Call DestroyWindow(hCapWnd) // '消灭视频摄取时留下的窗体
    CloseMapInfoConnection                           //断开和MapInfo的连接End Sub    结果还是没能搞定,请问有没什么办法,现在就只剩下这问题了,解决后整个系统就OK了。哪位朋友能帮我解决呀,本人将不胜感激。
    请问能不能在程序中,当关闭该可执行文件时用几行代码就可以释放程序所占有的资源
    在线等待......

解决方案 »

  1.   

    Private Declare Function CloseWindow Lib "user32" Alias "CloseWindow" (ByVal hwnd As Long) As Long用这个函数试一下~~
      

  2.   

    试试
    Private Declare Function TerminateProcess Lib "kernel32" Alias "TerminateProcess" (ByVal hProcess As Long, ByVal uExitCode As Long) As LongPrivate Declare Function TerminateThread Lib "kernel32" Alias "TerminateThread" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long
      

  3.   

    我只想问你,你创建的对象都释放了吗。mapinfo等
      

  4.   

    guoyx(guoyx):
       释放了啊!
      

  5.   

    最后关闭时释放的就是
        MapInfo.Do "Close All"                           //关闭MapInfo
        CloseMapInfoConnection                           //断开和MapInfo的连接难道不是这样释放的吗?,请指教谢谢!
      

  6.   

    你的程序运行了Form_Unloadf吗?你可以跟综一下看看啊,有没有执行你写的语句啊
      

  7.   

    CloseMapInfoConnection 这个函数的代码呢
    看看我的函数,从来没有你说的问题Function FindMap(ByVal MapNo1 As String, ByVal MapType As String) As Boolean
        Dim MapPath  As String
        Dim IsExits As String
        '创建Mapinfo对象
        Screen.MousePointer = 11
        Dim Mapinfo As Object
        IsExits = "T"
    On Error GoTo errhandle
        Set Mapinfo = CreateObject("MapInfo.Application")    If Trim(MapType) = "500" Then
            Mapinfo.Do "Open Table """ & Map_Path4 & "L2000.TAB"" as Map2000SM  ReadOnly"
            Mapinfo.Do "Select * from Map2000SM where  图号 = """ + Trim(MapNo1) + """ and 入库否=""" + IsExits + """ into Selection"
            If Mapinfo.Eval("SelectionInfo(3)") = 0 Then
                FindMap = False
            Else
                FindMap = True
                Mapinfo.Do "Close all"
                Screen.MousePointer = vbNormal
                Exit Function
            End If
        End If
        Mapinfo.Do "Close all"
        Set Mapinfo = Nothing
        Screen.MousePointer = vbNormal
        Exit Function
    errhandle:
        Screen.MousePointer = vbNormal
        FindMap = False
        Exit Function
    End Function