读书人

CString中Format的有关问题转化后为

发布时间: 2012-09-12 09:21:30 作者: rapoo

CString中Format的问题,转化后为(NULL)
char st[10];
sprintf(st,"%d",0);
string a = (string) st; //将整型转化为字符串
string t_book = "book" + a; //连接字符串
//CString mfcStr = t_book.c_str(); //这一种形式的转化可以实现
CString mfcStr;
mfcStr.Format(_T("%s"),t_book); //format方式的转化无法实现
wcout << mfcStr.GetBuffer() <<endl;

输出结果为:(NULL)这是为什么?请高手指点

[解决办法]
实际上我不太确定,Format先压入栈的是t_book对象(内存)还是地址?
如果是第一种情况:压入的是内存内容,而t_book对象的最后一个字节如果是NULL,那么mfcStr就是NULL
第二种情况:压入的是地址,如果地址指向的是t_book对象,如果t_book对象的第一个字节是0,那么mfcStr就是NULL


我想第一种情况比较靠谱,可以用windbg看看堆栈情况,VS可以看堆栈吗?

读书人网 >C++

热点推荐