亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

提示:不存在從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 關注
  • 846 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號