LPCTSTR與string之間的轉(zhuǎn)換(lpctstr)
大家好,小訊來為大家解答以上的問題。LPCTSTR與string之間的轉(zhuǎn)換,lpctstr這個(gè)很多人還不知道,現(xiàn)在讓我們一起來看看吧!
1、LPCTSTR類型:L表示long指針 這是為了兼容Windows 3.1等16位操作系統(tǒng)遺留下來的,在win32中以及其他的32位操作系統(tǒng)中, long指針和near指針及far修飾符都是為了兼容的作用。
2、沒有實(shí)際意義。
3、P表示這是一個(gè)指針。
4、C表示是一個(gè)常量。
5、T表示在Win32環(huán)境中, 有一個(gè)_T宏。
6、STR表示這個(gè)變量是一個(gè)字符串。
7、LPCTSTR表示一個(gè)指向常固定地址的可以根據(jù)一些宏定義改變語義的字符串。
8、同樣,LPCSTR就只能是一個(gè)ANSI字符串,在程序中我們大部分時(shí)間要使用帶T的類型定義。
9、LPCTSTR == const TCHAR * CString 和 LPCTSTR 可以說通用。
10、 原因在于CString定義的自動(dòng)類型轉(zhuǎn)換,沒什么奇特的,最簡單的C++操作符重載而已。
11、 常量字符串a(chǎn)nsi和unicode的區(qū)分是由宏_T來決定的。
12、但是用_T("abcd")時(shí), 字符串"abcd"就會(huì)根據(jù)編譯時(shí)的是否定一_UNICODE來決定是char* 還是 w_char*。
13、 同樣,TCHAR 也是相同目的字符宏。
14、 看看定義就明白了。
15、簡單起見,下面只介紹 ansi 的情況,unicode 可以類推。
本文到此分享完畢,希望對(duì)大家有所幫助。
免責(zé)聲明:本文為轉(zhuǎn)載,非本網(wǎng)原創(chuàng)內(nèi)容,不代表本網(wǎng)觀點(diǎn)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請(qǐng)讀者僅作參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。