MFC中L, _T(),TEXT,_TEXT區別以及含義
如 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,那就用後兩種方法。
相關推薦
MFC中L, _T(),TEXT,_TEXT區別以及含義
一、在字串前加一個L作用: 如 L"我的字串" 表示將ANSI字串轉換成unicode的字串,就是每個字元佔用兩個位元組。 strlen("asd") = 3; strlen(L"asd") = 6; 二、 _T巨集可以把一個引號引起來的字串,根據你的環境設定,使得編譯器會根據編譯目
MFC中CString與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
Java中this與super的區別以及用法
輸出結果 類構造 pan tex 成員變量 靜態 public 裏的 一個 super()用法 super()函數在子類構造函數中調用父類的構造函數時使用,必須要在構造函數的第一行。 1 class Animal { 2 public Anima
java中過載與重寫的區別以及與多型的關係
首先我們來講講:過載(Overloading) (1) 方法過載是讓類以統一的方式處理不同型別資料的一種手段。多個同名函式同時存在,具有不同的引數個數/型別。 過載Overloading是一個類中多型性的一種表現。 (2) Java的方法過載,就是在類中可以建立多
Oracle的left join中on和where的區別以及與(+)的區別
資料庫在通過連線兩張或多張表來返回記錄時,都會生成一張中間的臨時表,然後再將這張臨時表返回給使用者。 在使用left jion時,on和where條件的區別如下: 1、 on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄。 2、where條件是在臨時表生成好後
JAVA中REPLACE和REPLACEALL的區別 以及一些特殊字元替換
replace和replaceAll是JAVA中常用的替換字元的方法,它們的區別是: 1)replace的引數是char和CharSequence,即可以支援字元的替換,也支援字串的替換(CharSequence即字串序列的意思,說白了也就是字串); 2)replaceAll的引數是regex,即基於規
HTTP中302與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 \\ ’ //反引號
VC中CDC與HDC的區別以及二者之間的轉換
CDC是MFC的DC的一個類 HDC是DC的控制代碼,API中的一個類似指標的資料型別. MFC類的字首都是C開頭的 H開頭的大多數是控制代碼 這是為了助記,是程式設計讀\寫程式碼的好的習慣. CDC中所有MFC的DC的基類.常用的CClientDC
MFC中的_T巨集
Windows使用兩種字符集ANSI和UNICODE, 前者就是通常使用的單位元組方式,但這種方式處理象中文這樣的雙位元組字元不方便,容易出現半個漢字的情況。 而後者是雙位元組方式,方便處理雙位元組字元。 Windows NT的所有與字元有關的函式都提供兩種方式的版
不同版本的JDK中HashMap的實現的區別以及原因
轉載: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 中與字串相關的巨集 _T、TEXT,_TEXT、L 的作用
一、 在字串前加一個 L 作用: 如 L" 我的字串" 表示將 ANSI字串轉換成unicode 的字串,就是每個字元佔用兩個位元組。 str
VC中與字串相關的巨集 _T、TEXT,_TEXT、L 的作用
一、 在字串前加一個L作用:如L"我的字串" 表示將的字串,就是每個字元佔用兩個位元組。strlen("asd") =3;strlen(L"asd") =6;二、_T巨集可以把一個引號引起來的字串,根據你的環境設定,使得編譯器會根據編譯目標環境選擇合適的(Unicode還是ANSI)字元處理方式