zoukankan      html  css  js  c++  java
  • WinCE Error:Access Violation

    错误:

    在EVC4调试模式下,出现错误。

    错误提示:Error Access Violation

     点击确定后,EVC停止在文件:D:/Program Files/Windows CE Tools/wce500/5300Pro /Mfc/Src/strcore.cpp 的函数:LPTSTR CString::GetBuffer(int nMinBufLength)中的语句:if (GetData()->nRefs > 1 || nMinBufLength > GetData()->nAllocLength) 。

     

    解决问题:

     1 出现错误的是一个CString 类型的数组,因为数组比较大,考虑到可能是应用的stack太小。但将stack的空间增大,问题仍然没有解决;将数组的大小减小,同样问题没有解决。

     2 详细调试发现CString类在GetData时,指针m_pchData为空。原因不明!

     3 考虑最近的修改,寻找可能引起此问题的原因。因为一天前,此应用还是可以正常运行的!

    从稳定的版本到现在,只增加了一个数组和两个宏定义。

     原因肯定在这里,详细阅读代码发现,宏定义使用错误。很简单的错误:数组是用小的宏定义的,初始化时却错误的写成大的宏。

    导致一个CString 数组变量的部分成员的空间被占用。

  • 相关阅读:
    磁盘调度算法
    Maven 的 学习笔记
    文档结构
    变量
    进入SQL*Plus环境 (常用命令)
    PAT甲级 1050 String Subtraction (20分)(当读一行时(gets用不了))
    PAT甲级 1095 Cars on Campus (30分)(map + 排序)
    图书管理系统
    学生成绩管理系统
    磁盘调度算法
  • 原文地址:https://www.cnblogs.com/91program/p/5253238.html
Copyright © 2011-2022 走看看