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
错误:
在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 数组变量的部分成员的空间被占用。
下一篇: 如何在自己的主页上使用PHP
推荐阅读
-
mysql 1045 access denied for user 解决方法_MySQL
-
通过Access从Web获取MySQL数据_PHP教程
-
Access宏的特点介绍
-
Fatal Error: Can't use object 'stdClass' as array 宗师帮看看郁闷死了
-
PHP Parse error: parse error, unexpected T_OBJECT_OPERATOR
-
Parse error: syntax error, unexpected 'include' (T_INCLUDE) in D:mywebadd.php解决方案
-
ACCESS数据库防止下载
-
PHPMailer+gmail:SMTP Error Data not accepted
-
thinkphp has encountered a access violation at 0xoooooo
-
Access提高企业管理器功能