不能從const char *轉換爲LPCWSTR --VS經常碰到

錯誤:

不能從const char *轉換爲LPCWSTR

在VC 6.0中編譯成功的項目在VS2005 vs2005、vs2008、vs2010中常會出現這類型錯誤。

解決辦法:

方法一:可行的辦法是使用 _T(“TEST”)轉換。

另一種方法是:項目菜單——項目屬性(最後一個)——配置屬性——常規——項目默認值——字符集,將使用Unicode字符集改爲未設置即可。

原因:

這是由於字符編碼問題引起的。

VC6 默認使用的 MBCS(多字節字符集) 編碼,而 VS2010 及高版本 VS默認使用的 Unicode編碼。

UNICODE與MBCS或ANSI 有什麼區別呢?
簡單的說,UNICODE版的字符比ANSI 的內存佔用大,比如:Win32程式中出現的原來的標準定義 char 佔一個字節,而 char 的UNICODE版佔2個字節,被定義成這樣:typedef unsigned short wchar_t 。

轉載自:https://www.cnblogs.com/dongsheng/p/3586418.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章