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) );//这样试一下

一只甜甜圈
TA贡献1836条经验 获得超5个赞
使用这个试试
CString str ="abc";
pcBuffer = (char*)(LPCTSTR)(str);
或者使用
LPTSTR p = s.GetBuffer( s.length+1 );
- 3 回答
- 0 关注
- 798 浏览
添加回答
举报
0/150
提交
取消