用vb编写的上位机,每次运行一天左右就报如下错误,不知道什么原因?

解决方案 »

  1.   

    检查是否资源泄漏的办法之一:
    在任务管理器 进程 查看 选择列 里面选择:内存使用、虚拟内存大小、句柄数、线程数、USER对象、GDI对象
    让你的程序(进程)不退出,循环执行主流程很多遍,越多越好,比如1000000次甚至无限循环,记录以上各数值,再隔至少一小时,越长越好,比如一个月,再记录以上各数值。如果以上两组数值的差较大或随时间流逝不断增加,则铁定有对应资源的资源泄漏!
      

  2.   

    造成此错误的一种可能的直接原因是调用 API 时参数的数据类型不正确。仔细检查一下。另一种可能是内存溢出。第一种情况是设计上的问题,例如 Timer 时间中处理的事项所需时间大于 Timer 间隔等等。第二种是代码 Bug,例如反复实例化某种对象,但没有释放。第三种是隐性的内存泄漏,有些与特定的 API 有关。这个要上网查,一般常见的都可以查到。看你用了哪些,有针对性地查。
      

  3.   

    调用API的参数没什么问题;
    内存溢出怎么检查?
    timer时间中处理事项所需的时间也不会大于timer的间隔。
    反复实例化对象怎么才算释放?可否举个例子?
      

  4.   

    用错数据类型?比如说?是类似比如应该是double但是用的single或byte这种错误么
      

  5.   

    推荐一个比较简单的办法:
    在上位机上安装VB6开发环境
    将你有问题的VB6源代码拷贝过去
    去掉或暂时注释掉你VB6源代码中类似On Error Resume Next的错误处理语句
    在VB6 IDE中运行你的程序在出错时会弹出对话框提示,点击相应按钮进入调试
    光标即定位在你出错的那一行上
    此时可以在立即窗口中用"?变量名(回车)"命令查看你关心的变量的当前值。