最近碰到了CString 轉 const char *的問題。
以前只要簡單的一個強制轉換就OK了,可現在是不行了,搜索了很多資料,終於搞定,主要是Unicode和ANSI的問題,只要做一個轉換就可以了,不過這個過程遠沒有6.0來的那么輕松。下面這段轉換代碼也是從MSDN上獲取的。
CString str=_T("這是我的測試程序。");
// 先得到要轉換為字符的長度
const size_t strsize=(str.GetLength()+1)*2; // 寬字符的長度;
char * pstr= new char[strsize]; //分配空間;
size_t sz=0;
wcstombs_s(&sz,pstr,strsize,str,_TRUNCATE);
int n=atoi(const char*)pstr); // 字符串已經由原來的CString 轉換成了 const char*
//沒有這番轉換會報錯,無法將LPCTSTR或CString 轉換為const char*
就是每次轉換都要寫一堆上面的過程了,呵呵。
不過收獲還是不少。