error C2664: strcpy : 不能将参数 2 从 CString 转换为 const char *
strcpy(szName,strText);szName是char类型的,而strText是CString型的变量,怎么办啊??书上就是这么写的,可是我的vs2008不...
strcpy(szName,strText);
szName是char类型的,而strText是CString型的变量,怎么办 啊??书上就是这么写的,可是我的vs2008不能编译通过、。
什么是下表??? 展开
szName是char类型的,而strText是CString型的变量,怎么办 啊??书上就是这么写的,可是我的vs2008不能编译通过、。
什么是下表??? 展开
5个回答
展开全部
szName必须是一个缓冲区,比如说char szName[100];当然也可以是动态分配的内存。
CString有提供的到const char*的隐式转换,所以以前这样的代码可能可以通过,现在可以有多种方法来代替。
第一个是用CString的GetBuffer来获取字符串到新的缓冲区中去
第二个strcpy( szName, ( const char*)strText);或者:
strcpy( szName, (LPCTSTR)strText);
试试看啊。
CString有提供的到const char*的隐式转换,所以以前这样的代码可能可以通过,现在可以有多种方法来代替。
第一个是用CString的GetBuffer来获取字符串到新的缓冲区中去
第二个strcpy( szName, ( const char*)strText);或者:
strcpy( szName, (LPCTSTR)strText);
试试看啊。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
string类型与char类型是有重要区别的,前者就是存有若干字母或者数字符号的集合,理论上可以存储无穷多位,但是后者不同,它有固定的已经开辟好的空间,并且用\0结束,而strcpy函数是拷贝的后者类型,必须有指定的结束符号,所以两者不能拷贝,编译出错,解决方法是不使用该函数,最简单的方法就是避免两者混用,必须用的话可以用下标的方式一一赋值,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
强行转换(LPCTSTR)
或.GetBuffer(1)
或.GetBuffer(1)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
strcpy(szName,(char*)(LPCTSTR)strText);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询