为了账号安全,请及时绑定邮箱和手机立即绑定

提示:不存在从CSTRING到LPCSTR的适当转换函数!什么情况?

提示:不存在从CSTRING到LPCSTR的适当转换函数!什么情况?

沧海一幻觉 2022-08-04 10:06:15
CString strSource;if(OpenClipboard()) //打开剪贴板{HGLOBAL clipBuffer;char*pcBuffer;EmptyClipboard(); //清空剪贴板内容GetDlgItemText(IDC_EDIT1, strSource); //从指定ID文本框获取字符串clipBuffer = GlobalAlloc(GMEM_DDESHARE, strSource.GetLength()+1); //获取内存,长度为字符串长度pcBuffer = (char*)GlobalLock(clipBuffer);strcpy(pcBuffer, LPCSTR(strSource)); //strcpy_s比strcpy内部多了安全性判断,消除不安全警告GlobalUnlock(clipBuffer);SetClipboardData(CF_TEXT, clipBuffer); //设置剪贴板内容CloseClipboard(); //必须关闭剪贴板}在VS2010下,上面的代码中strcpy函数中第2个参数处,提示:不存在从CSTRING到LPCSTR的适当转换函数!各位这是怎么回事呀。要怎么改。怎样将CSTRING转换成char *呀?求助呀!!!!
查看完整描述

3 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

LPCSTR是个宏,相当于char *
CString strSource; //定义strSource是string类,不能强制转换成char *
strcpy( pcBuffer , strSource.GetBuffer(0) );//这样试一下

查看完整回答
反对 回复 2022-08-08
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

使用这个试试
CString str ="abc";
pcBuffer = (char*)(LPCTSTR)(str);

或者使用
LPTSTR p = s.GetBuffer( s.length+1 );

查看完整回答
反对 回复 2022-08-08
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

个人感觉是LPCSTR不能够接收CString对象作为参数,你可以试试其他方法看看如何将一个CString转化为一个char*

查看完整回答
反对 回复 2022-08-08
  • 3 回答
  • 0 关注
  • 798 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号