Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Windows SDK' sı genel, Windows kod sayfasıve Unicode sürümlerinde işlev prototipleri sağlar. Prototipler, Windows kod sayfası prototipleri veya Unicode prototipleri üretmek için derlenebilir. Üç prototip de bu konuda ele alınmıştır ve SetWindowText işlevi için kod örnekleriyle gösterilmiştir.
Aşağıda genel bir prototip örneği verilmiştir.
BOOL SetWindowText(
HWND hwnd,
LPCTSTR lpText
);
Üst bilgi dosyası, makro olarak uygulanan genel işlev adını sağlar.
#ifdef UNICODE
#define SetWindowText SetWindowTextW
#else
#define SetWindowText SetWindowTextA
#endif // !UNICODE
Ön işlemci makroyu Windows kod sayfasına veya Unicode işlev adına genişletir. Genel işlev adının sonuna uygun şekilde "A" (ANSI) veya "W" (Unicode) harfi eklenir. Üst bilgi dosyası daha sonra aşağıdaki örneklerde gösterildiği gibi biri Windows kod sayfaları ve diğeri Unicode için olan iki özel prototip sağlar.
BOOL SetWindowTextA(
HWND hwnd,
LPCSTR lpText
);
BOOL SetWindowTextW(
HWND hwnd,
LPCWSTR lpText
);
içinWindows Veri Türleri'nde açıklandığı gibi, genel işlev prototipi metin parametresi için LPCTSTR veri türünü kullanır. Ancak, Windows kod sayfası prototipIPCSTR türünü kullanır ve Unicode prototip LPCWSTR kullanır.
Metin bağımsız değişkenleri olan tüm işlevler için uygulamalar normalde genel işlev prototiplerini kullanmalıdır. Bir uygulama üst bilgi dosyalarının #include deyimlerinden önce veya derleme sırasında "UNICODE" tanımlarsa, deyimler Unicode işlevlerinde derlenir.
Not
Yeni Windows uygulamaları, çeşitli kod sayfalarının tutarsızlıklarını önlemek ve yerelleştirme kolaylığı sağlamak için Unicode kullanmalıdır. Bunlar genel işlevlerle yazılmalıdır ve işlevleri Unicode işlevlerine derlemek için UNICODE tanımlamalıdır. Bir uygulamanın 8 bit karakter verileriyle çalışması gereken birkaç yerde, Windows kod sayfaları için işlevleri açıkça kullanabilir.
Uygulamanız her zaman genel dize ve karakter türleriyle genel bir işlev prototipi kullanmalıdır. Büyük harf "W" ile biten tüm işlev adları Unicode, yani geniş karakter, parametreler alır. Bazı işlevler yalnızca Unicode sürümlerinde bulunur ve yalnızca uygun veri türleriyle kullanılabilir. Örneğin, LCIDToLocaleName ve LocaleNameToLCID yalnızca Unicode sürümleri vardır.
Her Unicode ve karakter kümesi işlevinin başvuru belgelerindeki Gereksinimler bölümü, desteklenen işletim sistemleri tarafından uygulanan işlev sürümleri hakkında bilgi sağlar. "Unicode" ile başlayan bir satır varsa, işlevin ayrı Unicode ve Windows kod sayfası sürümleri vardır.
Not
bir işlevin karakter dizesi için uzunluk parametresi olduğunda, uzunluk dizedeki TCHAR değerlerinin sayısı olarak belgelenmelidir. Bu veri türü, işlevin Windows kod sayfası sürümleri için baytları veya Unicode sürümleri için 16 bit sözcükleri ifade eder. Ancak, GlobalAlloc işlevi gibi, yazılmamış bellek bloklarına işaretçiler gerektiren veya döndüren işlevler, kullanılan prototipten bağımsız olarak genellikle bayt cinsinden bir boyut alır. Yazılmamış bellek ayırması bir dize içinse, uygulamanın karakter sayısını sizeof(TCHAR) ile çarpması gerekir. Ek bilgi için bkz. Genel Veri Türlerini Kullanma.
İlgili konular
-
Windows API 'de Unicode