程序运行上3个小时之后,会报错,看其信息大概是CByteArray数组越界错误(提示说AFXCOLL.INL的第27行)这里是一个关于数组下标的断言,这样看来应该是使用数组下标越界错误,但是在错误对话框上点击取消想要进行调试,则出现第二个错误对话框,程序在0x80000003地址发生错误,再次点击取消,则干脆成了PATH NOT FOUND 对话框,无法进入调试。我想问的就是,如何对数组越界进行异常处理,如果我想在程序发生错误的时候把一些变量的值输出,那么这个工作应该放在程序的那个部分进行?

解决方案 »

  1.   

    我找到可能的问题所在了。
    我有个CByteArray 初始化设定了一个元素。
    而在一个线程当中会对这个数组进行SetAt以及GetAt,但是程序开始运行的时候并没有什么问题,在运行2个小时之后就会报越界错误,我是使用的SetAt(0,...)以及GetAt(0),使用的是直接索引而不是变量,为什么会出错误?
      

  2.   

    真是奇哉怪也,我想程序为什么会报PATH NOT FOUND (WIN32 ERROR 3)错误呢?于是我把项目从桌面拷贝到D盘上,运行相当长时间就没有问题。为什么会发生这种现象?我想可能的原因是我重装了多次系统,而没有格式化系统盘,因此会有一些垃圾,难道这就会是原因吗?真是只要有想象力,Anything is possible.
      

  3.   

    但问题是我并没有使用与路径相关的任何东西呀,也没有使用DLL,就是一个对话框而已。
    而且,我拷贝到D盘上也没做任何更改居然就好用了?