程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> lpcwstr類型問題,lpcwstr類型

lpcwstr類型問題,lpcwstr類型

編輯:C++入門知識

lpcwstr類型問題,lpcwstr類型


在使用VS2010開發C++程序時,由於系統默認字符集是unicode字符集,造成與早期的字符串格式不兼容問題

①Properties — Configuration Properties — General,如下,右邊有個Character Set,將其由“Unicode Character Set”改為“Multi-Byte Character Set”即可

②這樣寫:L"Helloworld!",或者使用通用的_T("Helloworld!")宏的形式,_T定義在tchar.h


用VC++在VS2010中的類型轉換問題(char*或string轉換成LPCWSTR)

VS2010默認是Unicode的,在VC 6.0中編譯成功的項目在VS2010中常會出現類型錯誤。 經常出現的錯誤是:不能從const char *轉換為LPCWSTR 如使用CreateDC("DISPLAY",NULL,NULL,NULL)就會報錯,如果使用強制轉換(LPCWSTR)"DISPLAY",雖然能夠通過,但是編碼會出錯。 可行的辦法是使用 TEXT("DISPLAY")轉換, CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL); 另一種方法是: 項目菜單——項目屬性(最後一個)——配置屬性——常規——項目默認值——字符集,將使用Unicode字符集改為未設置即可。

本人推薦用最後一種方法,即把“Unicode字符集”改為“未設置”。 非常方便。
 

error:"LPSTR"類型的實參數與"LPCWSTR"類型的形參不兼容

確實是編碼問題,你可能是從VC6以下版本轉到VS2003以上版本編程的,那麼就存在字符是16位還是32位表示的問題.你可以去翻閱下<windows下的C/C++高級編程>開篇就是講關於變量類型的問題.另有unicode編碼一書.

我的意思與上一位相同.編碼問題可以使用判斷程序是否已經定義#define __Unicode宏來解決
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved