1. 程式人生 > >error C2440: 如無法從“const char [N]”轉換為“LPCWSTR” 的一點總結

error C2440: 如無法從“const char [N]”轉換為“LPCWSTR” 的一點總結

一般出現這種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