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

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 *呀?求助呀!!!!

沧海一幻觉
浏览 799回答 3
3回答

慕工程0101907

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

一只甜甜圈

使用这个试试CString str ="abc";pcBuffer = (char*)(LPCTSTR)(str);或者使用LPTSTR p = s.GetBuffer( s.length+1 );

陪伴而非守候

个人感觉是LPCSTR不能够接收CString对象作为参数,你可以试试其他方法看看如何将一个CString转化为一个char*
打开App,查看更多内容
随时随地看视频慕课网APP