[問題] UNICODE字元集跟多位元組語系字元集是差在哪?

看板C_and_CPP作者 (趁和平時快賺)時間14年前 (2010/03/17 20:18), 編輯推噓1(1011)
留言12則, 3人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 不好意思 我是學C++的超級新手... 用的程式是Visual C++ 2008 我在試這段程式碼的時候遇到一個很怪的問題 TCHAR a[MAX_PATH]=""; TCHAR b[MAX_PATH]=""; strcpy(a,"T"); strcpy(b,"EST"); strcat(a,b); MessageBox(NULL, a , "T-E-S-T", 0); 用VC++2008預設的unicode字元集絕對會產生錯誤.. 可是改成多位元組字元集就可以正常執行 真的很百思不得其解....請問要怎麼改才能讓他在UNICODE也能正常值行呢? 程式跑出來的錯誤結果: error C2664: 'strcpy' : 無法將參數 1 從 'TCHAR [260]' 轉換成 'char *' 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Visual C++ 2008 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.101.36.101

03/17 20:35, , 1F
try L"T" , L"EST", L"T-E-S-T"
03/17 20:35, 1F

03/17 20:35, , 2F
另外... strcpy應該有問題... Orz 他不是Unicode的
03/17 20:35, 2F

03/17 20:56, , 3F
加L沒有用 這樣的話 就是UNICODE跟多位元組字集的派系問
03/17 20:56, 3F

03/17 20:56, , 4F
題喔?
03/17 20:56, 4F

03/17 21:03, , 5F
恩... 不用strcpy 加L就可以用 只是這樣寫法就要改了0.0
03/17 21:03, 5F

03/17 21:05, , 6F
感謝解惑 原來是strcpy的問題= =
03/17 21:05, 6F

03/17 21:34, , 7F
建議把strcpy換成lstrcpy吧... 一切都解了~~
03/17 21:34, 7F

03/18 00:03, , 8F
都用了TCHAR了, 建議不要自己寫ANSI或Wild版本的string
03/18 00:03, 8F

03/18 00:03, , 9F
function或literal constants; strcpy的話, 用_tcscpy()
03/18 00:03, 9F

03/18 00:05, , 10F
取代吧; 請見 http://0rz.tw/zz01d :)
03/18 00:05, 10F

03/18 00:08, , 11F
嗯嗯 謝謝 馬上來試試看 因為我是看範例試的XD 不曉得這麼
03/18 00:08, 11F

03/18 00:08, , 12F
多用法XD
03/18 00:08, 12F
文章代碼(AID): #1BeCYlGc (C_and_CPP)