返回信息流有一个10个字的字符串赋给了CString类的对象s,然后通过
string str;
str=(LPSTR)(LPCTSTR)s;
将s赋给str,结果s的capacity有10,但是size只有1 ...
也就是只能读出一个字符...弄这个都快晕了T.T
学长学姐们帮忙看看怎么回事吧...
这是一条镜像帖。来源:北邮人论坛 / cpp / #80016同步于 2014/5/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
MFC中string的size和capacity的问题
chenguangqi
2014/5/30镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
用 str=s.GetBuffer(s.GetLength()); 也不行(没过编译,可能是版本问题)
最后索性用了个字符数组ch ,将s里的每个字符一一赋值给ch,再用ch初始化str ...这样没问题了
首先你要理解LPSTR是什么,他是一个指针
剩下的,顺着这个思路想一想?
【 在 chenguangqi 的大作中提到: 】
: 有一个10个字的字符串赋给了CString类的对象s,然后通过
: string str;
: str=(LPSTR)(LPCTSTR)s;
: ...................
这样啊!多谢了~才开始做MFC的东西,类型转化都是直接拿来用的也没弄懂什么原理...
【 在 q397273499 的大作中提到: 】
: 首先你要理解LPSTR是什么,他是一个指针
: 剩下的,顺着这个思路想一想?
看cstring,string定义再去转换
【 在 chenguangqi (Fallen_chan) 的大作中提到: 】
: 用 str=s.GetBuffer(s.GetLength()); 也不行(没过编译,可能是版本问题)
: 最后索性用了个字符数组ch ,将s里的每个字符一一赋值给ch,再用ch初始化str ...这样没问题了
通过『我邮2.0』发布