error C2440: 如無法從“const char [N]”轉換為“LPCWSTR” 的一點總結
阿新 • • 發佈:2019-01-29
一般出現這種BUG 的,是由於字符集的問題。在vs2005中有兩個字符集,Unicode 和 Muti-bye。
LPCTSTR在Multi-byte Character方式下與const char*等價,在Unicode方式下與const tchar*等價。所以在Unicode方式下對其賦值像下面這樣:
LPCTSTR location = _T("Software//");//加_T進行轉化
否則報錯:error C2440: “初始化”: 無法從“const char [10]”轉換為“LPCTSTR”
同樣在Unicode方式下對於AfxMessageBox(_T("Software//"));
否則報錯: error C2665: “AfxMessageBox”: 2 個過載中沒有一個可以轉換所有引數型別
遇到這種BUG的修改方法為:
1.中文版:
工程-》設定屬性-》配置屬性-》常規-》專案預設值-》字符集
注意:
原來是Unicode (安裝時的預設值)
改為使用多字符集 。如下圖中彩色部分,自己看吧!
2.英文版:
Project-》Properties-》Configuration Properties-》General-》Project Defaults-》Character Set
http://blog.csdn.net/neuqdaxing/article/details/6243037