本文為大便一籮筐的原創內容,轉載請注明出處,謝謝:http://www.cnblogs.com/dbylk/p/3696367.html
通過查看LPCSTR的定義:
typedef _Null_terminated_ CONST CHAR *LPCSTR, *PCSTR;
可以知道LPCSTR代表了const char *類型,它是一個指向以'\0'結尾的8位(單字節)ANSI字符數組的常量指針,
而const wchar_t *類型是一個指向'\0'結尾的16位(雙字節)Unicode字符數組的常量指針.
在VS2013編譯器中直接輸入的字符串常量(如“abc”)默認是以const char *的格式(即ANSI編碼)儲存的,因此會導致類型不匹配的編譯錯誤。
解決的辦法有兩個:
第一個方法是右擊“解決方案資源管理器”中的項目,“屬性→配置屬性→常規→項目默認值→字符集”,默認的選項是“使用多字節字符集”,將它改為“使用Unicode字符集”即可。
這樣,輸入的字符串會默認以const wchar_t *格式儲存。
第二個方法是使用_T宏,它在“tchar.h”中定義,它能夠自動識別當前編譯器字符串的儲存格式並做出相應轉換,避免這種類型的編譯錯誤。
具體使用方法為:將“abc”改為_T("abc")。