环境:VB6.0+SQL2000
第三方控件:正版VsNetMenu6.4,有多个自定义控件
症状:每次退出VB及退出编译后的可执行文件自动弹出:
    
    “0x7341a357"指令引用的"0x065d228c"内存。该内存不能为"read"。
    要终止程序,请单击"确定"
    要调试程序,请单击“取消”
说明:我知道很有可能是不正确引用API导致的,但我就在一个地方引用了API,并且能够确认它无误,而正版的VsNetMenu6.4我尝试过全部删除,但一样出错。跪求寻找错误的办法,我可以把整套程式和数据库传给老大您QQ:16038127
Email:[email protected]

解决方案 »

  1.   

    在准备关闭VB时把SSM开启监视VB的活动或许是个办法.或者修复VB可能也很快哈
      

  2.   

    弱弱的问一下,啥是SSM啊,是不是立即窗口呢?我现在是在关闭VB的时候会出错,退出正在运行的VB的程序是不会的;
    再者,如何修复VB呢?重装?VB没有问题啊,我也试过重装还试过用另一个操作系统呢
      

  3.   

    这样的问题一般是你安装的软件有冲突,我经常遇到。一般来说,病毒的可能性很小,除非病毒专门针对你的软件,说明你有水平,是个高手。
    360网站的这篇文件也许对你有用。看看吧:
    经验:内存不能为read的解决办法  http://baike.360.cn/3456111/3442076.html
      

  4.   


    一般牛人都确认自己无误。无误还 Debug 干嘛?
      

  5.   

    是不是你没有释放资源呢?
    你是不是set xx=nothing了呢?
      

  6.   

    谢谢大家的关注!
    VsNetMenu6.4我有全部删除过但还是不行的;
    API我也试过隐掉也不行;
    我有释放资源,使用的就是set xx=Nothing的方法现在是viki兄在替我调试源代码,看能否有突破。
    还有想问一下,为什么要封viki的号呢
      

  7.   

    Viki Feng 阿花的号为什么被封呢
      

  8.   

    你的函数过程中的参数ByVal 的值,可能会引起这样的问题请检查一下是不是因为这些个原因
      

  9.   

    建议重装一下vb,有很多问题时vb本身引起的不是程序引起的,重装能解决该问题。
      

  10.   

    这样的问题我以前也碰到过,退出VB时报错。应该不是VB本身的问题,也不是你的程序有问题。最大的可能是跟你以前装的软件引起冲突。如果之前VB是好用的。在装了某个软件之后才出现这种情况,就卸掉这个软件,试一下。重装电脑操作系统后,首先装VB。再装你要用的其它软件。
      

  11.   

    这样的问题我以前也碰到过,退出VB时报错。应该不是VB本身的问题,也不是你的程序有问题。最大的可能是跟你以前装的软件引起冲突。如果之前VB是好用的。在装了某个软件之后才出现这种情况,就卸掉这个软件,试一下。实在不行,重装电脑操作系统后,首先装VB。再装你要用的其它软件。
      

  12.   

    通过sxs69和阿花的协助,暂时发现很有可能是由于在关闭FORM的时候未能及时卸载自定义控件所影起。即示能及时触发UserControl_Terminate
    是否在关闭Form的时候都应该触发UserControl_Terminate呢?
    感谢楼上热心的朋友帮助
      

  13.   

    啊哦,没有源码很难解决问题
    [email protected]
      

  14.   

    有原码才能解决,发原码过来:[email protected]
      

  15.   

        听他说是在水区里发了政治敏感言论。
        各位老大,我的源码在以下地址可以下载:
        http://www.yunhanerp.com/code/打包.rar
        
        主要问题集中在使用YHFORMA和YHFORMB两个自定义控件的FORM里面,在退出窗口的时候没有及时触发自定义控件的UserControl_Terminate事件。
     
        我现在在frmSysMain的Form_Unload里面加入关闭的代码后,再编译成EXE已经不再出错了,但是关闭VB依然出错。
     
        如果方便,还是请求加我的QQ号:16038127
     
        还有补充的是:由于ERP内的输入界面大多框架都是一样的,不同的只是输入内容不一样,所以我就用yhforma和yhformb这两个控件来封装了整个输入界面,当然输入栏位肯定不能封装,所又我放在form里面。
             谢谢各位!!
      

  16.   

    这个问题非常复杂,千奇百怪,需要仔细研究。我以前经常碰到,但都被我一个一个地干掉了,例如:在Timer内不断地修改Frame1框架的前景色ForeColor,就会被一些安全软件干掉,退出时崩溃,甚至不能启动。
      

  17.   


    经过测试,觉得可能是自定义控件里与记录集打交道的部分有问题。即没有及时关闭并释放RS所占内存所致。但是具体是哪个代码也不好说,因为楼主所涉及的第三方控件及自定义控件颇多。建议楼主缩小范围调试: 即新建一个FORM2,拉个YHFormA控件,在结合一个数据集调试;无错,再加上第三方的控件,例如菜单控件,调试,无错,再加个工具条控件。以此;可能会缩小错误范围。
      

  18.   

    如果需要帮助
    可以发邮箱[email protected]
    本人一直在做vb开发
    有一定经验
      

  19.   

    通过sxs69的帮助,在YHFind自定义控件内的V_AddImageButton模块里面,在ImageDate后面加入.picture之后,这几天都一直没有出错啦!!
    但不知道是为什么呢??Function V_AddImageButton(Row As Integer) '增加图片按钮
        Dim FieldStyle As Integer
        If Row < 1 Then Exit Function
        If P_Grid.TextMatrix(P_Grid.Row, 1) = "" Then Exit Function
        Label2.Visible = False
        FieldStyle = F_Grid.FindRow(P_Grid.TextMatrix(Row, 1), , 5)
        If FieldStyle < 1 Then '字段不存在
           P_Grid.Cell(flexcpPicture, Row, 1) = ImageError '异常
           P_Grid.Cell(flexcpPictureAlignment, Row, 1) = flexAlignRightCenter
           Label2.Visible = True
    '       Cancel = True
           Exit Function
        End If
        
        
        '数据表9字段10类型11
        '表实名|表别名|字段实名|字段别名|字段类型|字段索引|
        P_Grid.TextMatrix(Row, 9) = F_Grid.TextMatrix(FieldStyle, 0)
        P_Grid.TextMatrix(Row, 10) = F_Grid.TextMatrix(FieldStyle, 2)
        P_Grid.TextMatrix(Row, 11) = F_Grid.TextMatrix(FieldStyle, 4)
        
        FieldStyle = F_Grid.TextMatrix(FieldStyle, 4)
        Select Case FieldStyle
               Case 135 '日期
                   P_Grid.Cell(flexcpPicture, Row, 4) = ImageDate.Picture   '
                   P_Grid.Cell(flexcpPicture, Row, 6) = ImageDate.Picture
               Case 11 'CheckBox           Case Else '文字型
                   P_Grid.Cell(flexcpPicture, Row, 4) = imgBtnUp.Picture   '
                   P_Grid.Cell(flexcpPicture, Row, 6) = imgBtnUp.Picture
                   
                   '增加下拉框
                   On Error Resume Next
                   Load Combo2(Row)
                   Set Combo2(Row).Container = P_Grid
                   On Error GoTo 0
                   Combo2(Row).Visible = False
        End Select
    End Function
      

  20.   

    在sxs69的协助下已解决问题,本想将此贴的100分送给所有关注的朋友,再付500分给sxs69,但sxs69强烈要求不要再开贴给分,大恩不言谢,希望将来有请sxs69喝酒的机会。在此向各位关注的朋友说sorry了,同时还感谢阿花,他也提供了很多帮助,可惜CSDN竟然为了什么破政治敏感言论封了他的号。
      

  21.   

    居然有这样给分的??[/size[size=24px]]?
      

  22.   

    sorry呵,本问题由sxs69帮忙已经解决了,所以将100分全给他,但大家都那么热心,我追加了100平方给大家啦。
    谢谢你!
      

  23.   


    本帖中sxs69回复没有任何实质内容,删除处理。
    希望以后给分的时候,请主答人一定把答案帖在帖子内,以示公平