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.
- 1. LPCTSTR dönüşümü için CString
- 2. C'deki `_t`` boyut_t` nedir?
- 3. '_T' bu kapsamda bildirilmedi?
- 4. Boş CString nasıl ayrılır?
- 5. ATL :: CString üyesi
- 6. MongoDB'ye eklerken _t ve _v nasıl önlenir?
- 7. d_name ile bir cstring oluşturuluyor çekirdek dökümü
- 8. C++ dize değişmezlerinde _T veya _TEXT kullanmalı mıyım? Örneğin
- 9. HttpFile :: SendRequest ve karakter kodlaması
- 10. Ana bilgisayar adını doğrulamak nasıl (IP olabilir) ve bağlantı noktası numarası (CString)
- 11. Ben hata ayıklama modunda kod var işaretçi
- 12. Durumu operatörü ":?" Ve LPCTSTR fonksiyon başlığındaki
- 13. WinInet POST SSL ile (HTTPS) saf C ile mi?
- 14. Sanal işlevi geçersiz kılan, yalnızca çağrının anlamı nedir?
- 15. Bir const char * değişkenli printf sorusu
- 16. C++ işlevinin içinde işlev adı almanın bir yolu var mı?
- 17. Şablon sınıfı, işlev uzmanlığı
- 18. Bir sınıfın C++ 11'de yuvalanmış sınıf tanımı veya typedef belirtip belirtmediği nasıl denetlenir? Projemde
- 19. C/C++ 'da Unicode dizeleri çapraz platform dostu bir şekilde nasıl ele alınır?
- 20. UPnP cihazının servislerine nasıl erişebilirim?
- 21. MFC
- 22. Bir Yolu bir * c_char'a dönüştürmenin en doğrudan yolu nedir?
- 23. KabukExecuteEx tarafından açılan pencerenin hWnd nasıl .. hProcess?
- 24. C++
- 25. ADO komutu tsql sorgu sorunlarını ekle
- 26. Excel'de Adlandırılmış Adlar OpenXML
- 27. Sadece automoc dosyaları için derleyici tanımları eklemek için cmake nasıl alırsınız
- 28. std :: size_t için başlık içerir tercih
- 29. benim Programın başında
- 30. Çağrı, Rust'ta VarArgs kullanan bir FFI işlevine nasıl sarılır?
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. –