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 關注
- 846 瀏覽
添加回答
舉報
0/150
提交
取消