MFC之CString與const char* string 轉換


MFC開發時經常會遇到CString、string/std::string、char*等類型相互轉換的問題,現將一些思考與心得記下來與大家分享:

 

一、CString強制類型轉換為const char*,在變量前加上:(char *)(LPCTSTR),這樣做雖不會報錯,但其轉換后的值可能是亂碼,不推薦這樣做!

 二、利用中間變量(string類型),原理:

1)CString類型不能自動裝換為const char*。

2)const char*類型可自動裝換為CString。

3)std::string類型調用c_str()方法就可輕松轉換為const char*。

4)CString與std::string相互轉換:

CString cs("Hello");

std::string s((LPCTSTR)cs);

 

std::string s("Hello");

CString cs(s.c_str());

 

三、CString可能是unicode編碼(CString通過宏來確定到底是CStringA還是CStringW),因此應該先將之轉化為mbcs編碼,也就是CStringA
  1.  
    CString s = _T("abc");
  2.  
    std::string str = CStringA(s);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM