首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

程序跟到atlsimpstr.h里面报异场,请帮忙判断一上

2013-03-13 
程序跟到atlsimpstr.h里面报异场,请帮忙判断一下我这个程序里面会获取工程所在的路径的字符串,之前一直没

程序跟到atlsimpstr.h里面报异场,请帮忙判断一下
我这个程序里面会获取工程所在的路径的字符串,之前一直没出问题,但是当我把工程文件夹放到桌面,又把该文件夹名字改了一下就出错了,其它都没变过,所以我认为应改就是这个路径的问题。

我跟断点发现现在的这个路径在程序中也是正确获取了(就是现在这个路径比较长),然后是执行到Sleep()这个API的时候,就报异常了,异常出在atlsimpstr.h这个文件里的这段代码:
CStringData* pOldData = GetData();
int nOldLength = pOldData->nDataLength;
CStringData* pNewData = pOldData->pStringMgr->Clone()->Allocate( nLength, sizeof( XCHAR ) );
if( pNewData == NULL )
{
     ThrowMemoryException();
}

中的这一行:CStringData* pNewData = pOldData->pStringMgr->Clone()->Allocate( nLength, sizeof( XCHAR ) );
异常为:
Unhandled exception at 0x004043a2 in HiAudio.exe: 0xC0000005: Access violation reading location 0xacccb4d7.

求救,这是怎么回事,我获取的那个字符串是这样的:"C:\Documents and Settings\gki33772\桌面\A3M100D006 AudioTo 音频调试工具(V1.0.0.00)\release"
[解决办法]
跟Sleep没关系,是不是路径名太长了超过了定义的变量大小引起的
[解决办法]
指针有问题。
检查这一系列指针
pOldData->pStringMgr->Clone()->Allocate

热点排行