MFC使用CString的问题
部分源码:
- C/C++ code
CStringArray strarray;//---------------------------------FullName=strarray.GetAt(FCount);CString TempString,strBuff;TempString=FullName.Mid(FullName.ReverseFind('\\')+1);E_FileName=FPath+TempString.Mid(0,TempString.ReverseFind('.'))+".log";OutputFiles="";OutputFiles=FPath+TempString.Mid(0,TempString.ReverseFind('.')-1)+"_";//<----Error
使用For循环跑下面的部分时?第一次都正常?第二次后运行到OutputFiles就会出现?
错误讯息是:
Debug Error!
Program: C:\AAA.exe
DAMAGE:after Normal block(#17745) at 0x017B97C8
查了网路上文章都说是CString溢出?请问这要怎解决?谢谢?
[解决办法]
你调试下TempString.ReverseFind('.')的返回值多少吧
[解决办法]
CString sName = TempString.Mid(0,TempString.ReverseFind('.')-1);
E_FileName=FPath+sName+"log";
OutputFiles=FPath+sName+"_";
这样错不错?
[解决办法]
CString 跟 "" 混合都没有使用 _T()
[解决办法]
OutputFiles=FPath+TempString.Mid(0,TempString.ReverseFind('.')-1)+"_";
把TempString.ReverseFind('.')拿出来,把上面这句变成两句呢?
int nindex = TempString.ReverseFind('.');
OutputFiles=FPath+TempString.Mid(0,nindex-1)+"_";
[解决办法]
2012-09-07 04:40:49
楼主你神人啊。
[解决办法]
[解决办法]
TempString,strBuff用完也Empty()一下。