Aracılığıyla paylaş


Uluslararası Etkinleştirme

Çoğu geleneksel C ve C++ kodları karakter ve dize düzenlemeleri hakkında uluslararası uygulamalarda düzgün çalışmayan varsayımlarda bulunur.MFC ve çalışma zamanı kitaplığı Unicode ya da MBCS'yi desteklerken, hala yapmanız gerekenler vardır.Size yol göstermesi için, bu bölüm Visual C++'ta "uluslararası etkinleştirme"nin anlamını açıklar.

  • Unicode ve MBCS MFC işlev parametreleri listesindeki taşınabilir veri türleri ve dönüş türleri aracılığıyla etkinleştirilmiştir.Bu türler yapınızın _UNICODE ya da _MBCS (DBCS) simgelerinden hangisini tanımladığına bağlı olarak, uygun yollarla koşullu olarak tanımlanır.MFC kitaplığının farklı türevleri, yapınızın bu iki simgeden hangisini tanımladığına bağlı olarak uygulamanıza otomatik olarak bağlanır.

  • Sınıf kitaplık kodu doğru Unicode ya da MBCS davranışını güvenceye almak için taşınabilir çalışma zamanı işlevlerini ve diğer yolları kullanır.

  • Yine de kodunuzda belirli uluslararası duruma getirme görevlerini ele almalısınız.

    • MFC'yi herhangi bir ortamda taşınabilir yapmak için aynı taşınabilir çalışma zamanı işlevlerini kullanın.

    • _T makrosunu kullanarak, harf dizelerini ve karakterleri herhangi bir ortamda taşınabilir yapın.Daha fazla bilgi için, bkz. Tchar.h'ta Genel Metin Eşlemeleri.

    • MBCS altında dizeleri ayrıştırırken önlem alın.Bu önlemlere Unicode'da gerek yoktur.Daha fazla bilgi için, bkz. MBCS Programlama İpuçları.

    • Uygulamanızda ANSI (8-bit) ve Unicode (16-bit) karakterler kullanırsanız dikkatli olun.Programınızın bazı kısımlarında ANSI, diğer kısımlarında Unicode karakterleri kullanmanız mümkündür, ama bunları aynı dizede karıştıramazsınız.

    • Uygulamanızda dizeleri sabit kodlamayın.Bunun yerine, bunları uygulamanın .rc dosyasına ekleyerek STRINGTABLE kaynağı yapın.Uygulamanız artık kaynak kod değişimi ya da yeniden derleme gerektirmeden yerelleştirilebilir.STRINGTABLE kaynakları hakkında daha fazla bilgi için, bkz. Dize Düzenleyicisi.

[!NOT]

Avrupa ve MBCS karakter kümelerinin aksanlı harfler gibi 0x80'den büyük karakter kodu olan bazı karakterleri vardır.Çoğu kod işaretli karakterler kullandığı için, 0x80'den büyük bu karakterler int'e dönüştürüldüğünde işaretleri genişletilir.Bu, dizi dizinlemesi için bir sorundur çünkü eksi olan ve işareti genişletilmiş karakterler dizinin dışına dizinler.Japonca gibi MBCS'yi kullanan diller de eşsizdir.Bir karakter 1 ya da 2 bayttan oluştuğu için, her zaman iki baytı da aynı anda değiştirmelisiniz.

Ayrıca bkz.

Kavramlar

Unicode ve mbcs

Uluslararası Duruma Getirme Stratejileri