Mfc下CString轉換為char

2021-07-16 10:18:50 字數 578 閱讀 1534

下面分享一下新心得:

mfc 下cstring 轉char *

uses_conversion;

char * name = w2a(m_name.getbuffer(m_name.getlength()+1));

char * code = w2a(m_code.getbuffer(m_code.getlength() + 1));

windows 提供的乙個uses_conversion;巨集w2a轉換 m_name ,m_code 為cstring變數;

實際是  寬字元與窄字元的轉換。

這是unicode的問題, vc裡專案「屬性-》常規-》字符集」這個選項控制是使用unicode還是多位元組, unicode對應的就是lpwstr, 16位, 多位元組就是char, 8位。 lpwstr的最終宣告是unsigned short, 可見是16位的。mfc裡有乙個很容易的unicode轉ansi的巨集, uses_conversion, 通過w2a就可以把lpwstr轉換為char*
而使用強制寬窄字元轉換在mfc下只能得到乙個字元。
提問者評價

謝謝!

vc下cstring轉換為float

2009 07 08 09 57 22 分類 vc型別轉換 字型大小 訂閱 cstring str cstring almost mad float tempfloat 0.0 tempfloat atof str 但是出現這樣的錯誤 error c2664 atof cannot convert ...

CString轉換為double 創 轉

cstring轉換為double cstring strfloat float flt 或double fit 不過前面兩種方法在vs2005下執行結果不正確,在vc6.0開發環境下是可以的。說明 網上很多說的都是前兩種方法,結果double值只是字串的第乙個數字。方法一 flt float ato...

c string型別轉換為char 型別

string 是c 標準庫裡面其中乙個,封裝了對字串的操作 把string轉換為char 有3中方法 1。data 如 string str abc char p str.data 2.c str 如 string str gdfd char p str.c str 3 copy 比如 string...