E2034 Cannot convert 'wchar_t *' to 'const char *'

E2034 Cannot convert 'wchar_t *' to 'const char *'

今天遇到這個問題,
發現工程的屬性 Character Set 爲 “Use Unicode Character Set”  
改成 “Use Multi-Byte Character Set”
即可

E2034 Cannot convert 'wchar_t *' to 'const char *' bcb2010怎麼修改啊

解決方法

2009和2010使用的是unicode碼
字符串前加L 表示寬字節
如: L"你好";


我解決了,用了CString str;
  char * p=str.GetBuffer();
將項目-》屬性-》項目默認值-字符集改成 使用多字節字符集,然後重新生成解決方案,就好了。

lz 消失
鑑定完畢

不結貼就想跑?

也遇到了這個問題,想把字符串CString 轉成char *,不知道該怎麼做,高手指點啊~~謝謝啦
我用了下面的代碼,出現跟樓主一樣的錯誤。
char * pc=new char (tmp.GetLength()+1);
strncpy(pc,tmp.GetBuffer(tmp.GetLength()),tmp.GetLength());
pc[temp.GetLength()]='\0';

引用 4 樓 mini_peng 的回覆:
你用的是寬字符,可以用String的t_str()將寬字符串轉爲char 型字符串


如果使用t_str(),必須保證工程選項中_TCHAR映射爲char才能返回char *數據。

用AnsiString來中轉

你用的是寬字符,可以用String的t_str()將寬字符串轉爲char 型字符串

如果想得到char *類型的字符串,可以用AnsiString轉化原UnicodeString字符串,再用c_str()輸出


發佈了146 篇原創文章 · 獲贊 13 · 訪問量 71萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章