1. 程式人生 > >MFC中L, _T(),TEXT,_TEXT區別以及含義

MFC中L, _T(),TEXT,_TEXT區別以及含義

一、在字串前加一個L作用:  
  如 L"我的字串" 表示將ANSI字串轉換成unicode的字串,就是每個字元佔用兩個位元組。  
  strlen("asd") = 3;   
  strlen(L"asd") = 6;  
  二、 _T巨集可以把一個引號引起來的字串,根據你的環境設定,使得編譯器會根據編譯目標環境選擇合適的(Unicode還是ANSI)字元處理方式  
  如果你定義了UNICODE,那麼_T巨集會把字串前面加一個L。這時 _T("ABCD") 相當於 L"ABCD" ,這是寬字串。 
  如果沒有定義,那麼_T巨集不會在字串前面加那個L,_T("ABCD") 就等價於 "ABCD"  

三、TEXT,_TEXT 和_T 一樣的  
如下面三語句:
  TCHAR szStr1[] = TEXT("str1");   
  char szStr2[] = "str2";   
  WCHAR szStr3[] = L("str3");   
  那麼第一句話在定義了UNICODE時會解釋為第三句話,沒有定義時就等於第二句話。   
  但二句話無論是否定義了UNICODE都是生成一個ANSI字串,而第三句話總是生成UNICODE字串。 
  為了程式的可移植性,建議都用第一種表示方法。但在某些情況下,某個字元必須為ANSI或UNICODE,那就用後兩種方法。

相關推薦

MFCL, _T(),TEXT,_TEXT區別以及含義

一、在字串前加一個L作用:    如 L"我的字串" 表示將ANSI字串轉換成unicode的字串,就是每個字元佔用兩個位元組。    strlen("asd") = 3;     strlen(L"asd") = 6;    二、 _T巨集可以把一個引號引起來的字串,根據你的環境設定,使得編譯器會根據編譯目

MFCCString與string的區別以及相互轉換關係

區別: CString 類是微軟的visual c++提供的MFC裡面的一個類,所以只有支援MFC的工程才可以使用。如在linux上的工程就不能用CString了,只能用標準C++中的 string類了。另外,因為string類是在c++標準庫中,所以它被封裝在了std名稱

MFC L_T() 巨集

_T("")是一個巨集,定義在tchar.h下 . #define  _T(x) __T(x) #define  __T(x)  x #define __T(x)  L##x TCHAR*  p =_T("Hello");        他的作用是讓你的程式支援Uni

Javathis與super的區別以及用法

輸出結果 類構造 pan tex 成員變量 靜態 public 裏的 一個 super()用法 super()函數在子類構造函數中調用父類的構造函數時使用,必須要在構造函數的第一行。 1 class Animal { 2 public Anima

java過載與重寫的區別以及與多型的關係

  首先我們來講講:過載(Overloading)     (1) 方法過載是讓類以統一的方式處理不同型別資料的一種手段。多個同名函式同時存在,具有不同的引數個數/型別。 過載Overloading是一個類中多型性的一種表現。     (2) Java的方法過載,就是在類中可以建立多

Oracle的left joinon和where的區別以及與(+)的區別

資料庫在通過連線兩張或多張表來返回記錄時,都會生成一張中間的臨時表,然後再將這張臨時表返回給使用者。       在使用left jion時,on和where條件的區別如下: 1、 on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄。 2、where條件是在臨時表生成好後

JAVAREPLACE和REPLACEALL的區別 以及一些特殊字元替換

replace和replaceAll是JAVA中常用的替換字元的方法,它們的區別是:  1)replace的引數是char和CharSequence,即可以支援字元的替換,也支援字串的替換(CharSequence即字串序列的意思,說白了也就是字串);  2)replaceAll的引數是regex,即基於規

HTTP302與301的區別以及在ASP.NET如何實現

一.官方說法 301,302 都是HTTP狀態的編碼,都代表著某個URL發生了轉移,不同之處在於: 301 redirect: 301 代表永久性轉移(Permanently Moved)。 302 redirect: 302 代表暫時性轉移(Temporarily Mov

MFC設定static text控制元件的背景色、字型、字號和顏色

在實際的應用中,可以用WM_CTLCOLOR 訊息改變mfc中控制元件的顏色,比如現在就來改變一個static text控制元件的 字型、字型大小、字型顏色和背景色。 例如對話方塊的類為CTestDlg. 1. 在對話方塊的類中新增兩個變數. 方法:在classview選項卡中,選擇CTestDlg,右鍵,

shell反引號和$()的區別以及eval命令

反引號和$()的區別 反引號和$()都是shell指令碼中用來進行命令代換的命令,命令代換就是執行一個命令將其結果交給一個變數。 echo ‘echo \\ ’ //反引號

VCCDC與HDC的區別以及二者之間的轉換

CDC是MFC的DC的一個類  HDC是DC的控制代碼,API中的一個類似指標的資料型別.  MFC類的字首都是C開頭的  H開頭的大多數是控制代碼  這是為了助記,是程式設計讀\寫程式碼的好的習慣.  CDC中所有MFC的DC的基類.常用的CClientDC

MFC_T巨集

Windows使用兩種字符集ANSI和UNICODE, 前者就是通常使用的單位元組方式,但這種方式處理象中文這樣的雙位元組字元不方便,容易出現半個漢字的情況。 而後者是雙位元組方式,方便處理雙位元組字元。 Windows NT的所有與字元有關的函式都提供兩種方式的版

不同版本的JDKHashMap的實現的區別以及原因

轉載:http://blog.csdn.net/vking_wang/article/details/14166593 1. HashMap的資料結構 資料結構中有陣列和連結串列來實現對資料的儲存,但這兩者基本上是兩個極端。       陣列 陣列儲存區間是連續的,佔

JQuery的html(),text(),val()區別

1.html() html():取得第一個匹配元素的html內容。這個函式不能用於XML文件。但可以用於XHTML文件 html(val):設定每一個匹配元素的html內容。這個函式不能用於XML文件。但可以用於XHTML文件。 2.text() text():取得所有匹配

Python列表和字典的區別以及適用的場景

從應用場景來說: list 是記錄簡單有序資料的,就是一對一的那種,可以理解為一維陣列. 比如你記錄貓的名字,就可以用list = ['第1只貓名字','第2只貓名字'] ... 比如你記錄飯店的菜品,就可以用list = ['第1個菜紅燒肉','第2個菜紅燒大腸',第3個菜'紅燒排骨'] ... 這裡的記

java8 OffsetDateTime 和ZonedDateTime 的區別以及OffsetDateTime應該在寫入日期到資料庫時使用

對幾種不同的日期進行列印 import java.time.*; /** * @Author sunweipeng * @Date 2018/9/26 下午5:00 * @Version 1.0 **/ public class HelloWorld

Java關於==和equal的區別以及equals()方法重寫

例子i: string1="aaa"; string2="aaa"; String string3=new String("aaa"); String string4=new String("aaa"); string1==string2 // true; . string1.equals(string2)

mfc _T

1.工業程式設計中字串處理和編碼一直是個大問題,最近剛好做一點工業程式設計的事,需要用到usb通訊,接受位元組陣列,對於字串處理,MFC有較好的處理機制,整理一下_T的用法。 #define _T(x

VC 與字串相關的巨集 _TTEXT,_TEXTL 的作用

 一、 在字串前加一個 L 作用:     如   L" 我的字串"    表示將 ANSI字串轉換成unicode 的字串,就是每個字元佔用兩個位元組。   str

VC與字串相關的巨集 _TTEXT,_TEXTL 的作用

一、 在字串前加一個L作用:如L"我的字串" 表示將的字串,就是每個字元佔用兩個位元組。strlen("asd") =3;strlen(L"asd") =6;二、_T巨集可以把一個引號引起來的字串,根據你的環境設定,使得編譯器會根據編譯目標環境選擇合適的(Unicode還是ANSI)字元處理方式