için ne ifade eder? "T" ifadesi bir dizede neyi temsil eder. . Aslında işlemci MSDN_T, CString
cevap
_T
standları olmadan (MBCS dahil) ANSI dizeleri Unicode altında veya Unicode dize olarak derlemek. Eğer kaynaklarınızı Unicode desteğiyle derliyorsanız, editörünüzü Unicode geniş bir karakter haline getirecektir. Bakınız http://msdn.microsoft.com/en-us/library/c426s321.aspx.
söyler needed.What Unicode desteği olduğu örnek _T ("Merhaba") ben projelerde bu gördük:
Kullanım
_T
jenerik edebi dizeleri kodlamak için makro, bu yüzden “metin” için Unicode
Aslında Unicode ve ANSI desteğinin gerekli olduğu projeler için kullanılır. Derleyiciye, dizgi hazırlayıcısını, bir precompiler tanımlayıcısının değerine bağlı olarak Unicode veya ANSI olarak derlemesini söyler.
Bunu yapmak istemeniz neden başka bir konudur. Unicode'u tek başına desteklemek istiyorsanız, o zaman Unicode yazın, bu durumda L"Hello"
. Windows NT ve daha sonra (Unicode desteği) ve Windows 9x/ME (desteklemiyorsa) desteklemeniz gerektiğinde, _T()
makrosu eklendi. Bu günlerde, tüm modern Windows sürümleri Unicode tabanlı olduğundan, bu makroları kullanan tüm kodlar geçersizdir.
Teknik olarak '_T()', '_TCHAR' veri türüyle kullanmak için yalnızca C çalışma zamanı kitaplığı ile kullanılır. Win32 eşdeğeri, 'TCHAR' veri türü ile kullanmak için 'TEXT()' makrosu. Her ikisi de sırasıyla '_UNICODE' ve' UNICODE’un derleme sırasında tanımlanıp tanımlanmadığına bağlı olarak 'char' veya' wchar_t' ile eşleştirilir. Her ikisi de genellikle tanımlanmış/tanımlanmamıştır, bu yüzden birçok kişi bunları değiştirmeye eğilimlidir ve genellikle işler çalışır. Fakat bunlar mantıksal * ayrıdır ve * buna göre tedavi edilmelidir. C fonksiyonları ile '_TCHAR' ve' _T() 'kullanın. Win32 API ile 'TCHAR' ve' TEXT() 'yi kullanın. –
@RemyLebeau: Şimdi zor bir soru: MFC/ATL'nin 'CString' türüyle hangisini kullanacağız? CString, hem CRT hem de Windows API'sı açısından uygulanmaktadır. – IInspectable
Dokümantasyona göre: "*** CString," TCHAR "veri tipini temel alır **. *", Dolayısıyla TEXT() 'yi kullanın. –