我是新手,给自己写了个客户管理软件
这几天才学会用皮肤,使用的是skin sharp,使用皮肤正常,一切显示都正常,但现在发现一个问题,,,,就是用end退出这个程序时,VB就会出错,,如果不加载皮肤则退出正常,,,在线等高手帮忙本想抓个图上来,,,但上传了半天都上传不上来,,只好直接描述了
下面是主窗口通用里的申明Private Declare Function SkinH_AttachEx Lib "SkinH_VB6.dll" (ByVal lpSkinFile As String, ByVal lpPasswd As String) As Long  '换肤DELL,,下面是在主窗口的form load事件中的加载皮肤的代码
 SkinH_AttachEx App.Path & "/皮肤/1.she", ""     '加载皮肤面是退出按钮代码,,用end 退出程序Private Sub cmdExit_Click()
End
End Sub出错提示为:
0X0126552指令引用的0X0126552内存,该内存不能为read.指令A引用了内存A?两个地址是一样的,,,
在线等高手解答,求大神们帮忙

解决方案 »

  1.   

    估计是你的那个皮肤模块用了不少API,在退出程序释放内存时出现了问题,你可以尝试一下编译P代码,很多时候因为API引起的问题通过编译P代码都能解决问题,你可以尝试一下,如果不行,只有写那个皮肤模块的人才能解决这种问题了,要不你就只能换个东西来用了。
      

  2.   

    人家软件说明里面明确了不要用END这种暴力方法
      

  3.   

    +1
    SKINSHARP已经停止升级了,不喜欢!那个皮肤制作器蛋疼。
      

  4.   

    END结束程序不是一个好习惯.
      

  5.   

    VB的工程属性里有一个编译选项,里面有设置编译的模式。
    至于你的程序退出方式就像大家说的应该是有问题的,因为没看见有任何释放内存的代码,如果你的程序中没有加载什么需要手动释放的东西,这样当然没问题,但现在既然你的程序出现里故障,那你就该检查一下你在退出前应该先释放什么东西后再退出,特别是有些API分配的资源,如果你不主动的释放它,即使你的程序退出,它一样会占用系统资源。
      

  6.   

    可以使用PostMessage 关闭窗口,或直接使用unload me.hwnd
    Private Declare Function PostMessage Lib "user32" _
        Alias "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
      Dim  retval As Long
      
        retval = PostMessage(me.hwnd, WM_CLOSE, 0&, 0&)
      

  7.   

    skin sharp就这个样子,我也遇到类似的问题。每次运行出错后,关闭工程重新再打开一次就好了。
      

  8.   

    是的。调试时代码里用END,就容易导致VB无提示关闭! 改为unload等就不会了。
      

  9.   

    感谢楼上几位仁兄们,问题已经找到,是我另外一段代码里调用了另一个窗口的一个按钮,相当于激活了另一个窗口,但却没有卸载,所以用END结束时出错,,,后来加上unloadme后就正常了,,,,再次感谢大家不吝赐教,,,我现在的工作就是找段进销存代码同我的客户管理合二为一就对了,,自己懒得去钻研了,,毕竟我是业余的呵呵,,,,,,