Bagikan melalui


Pengaktifan Internasional

Sebagian besar kode C dan C++ tradisional membuat asumsi tentang manipulasi karakter dan string yang tidak berfungsi dengan baik untuk aplikasi internasional. Meskipun MFC dan pustaka run-time mendukung Unicode atau MBCS, masih ada pekerjaan yang harus Anda lakukan. Untuk memandu Anda, bagian ini menjelaskan arti "pengaktifan internasional" di Visual C++:

  • Unicode dan MBCS diaktifkan dengan cara jenis data portabel dalam daftar parameter fungsi MFC dan jenis pengembalian. Jenis ini didefinisikan secara kondisional dengan cara yang sesuai, tergantung pada apakah build Anda menentukan simbol _UNICODE atau simbol _MBCS (yang berarti DBCS). Varian pustaka MFC yang berbeda secara otomatis ditautkan dengan aplikasi Anda, tergantung pada dua simbol mana yang ditentukan build Anda.

  • Kode pustaka kelas menggunakan fungsi run-time portabel dan cara lain untuk memastikan perilaku Unicode atau MBCS yang benar.

  • Anda masih harus menangani jenis tugas internasionalisasi tertentu dalam kode Anda:

    • Gunakan fungsi run-time portabel yang sama yang membuat MFC portabel di kedua lingkungan.

    • Buat string harfiah dan karakter portabel di bawah salah satu lingkungan, menggunakan _T makro. Untuk informasi selengkapnya, lihat Pemetaan Teks Generik di tchar.h.

    • Berhati-hatilah saat mengurai string di bawah MBCS. Tindakan pencegahan ini tidak diperlukan di bawah Unicode. Untuk informasi selengkapnya, lihat Tips Pemrograman MBCS.

    • Berhati-hatilah jika Anda mencampur karakter ANSI (8-bit) dan Unicode (16-bit) dalam aplikasi Anda. Anda dapat menggunakan karakter ANSI di beberapa bagian program dan karakter Unicode di bagian lain, tetapi Anda tidak dapat mencampurnya dalam string yang sama.

    • Jangan untai (karakter) hard-code di aplikasi Anda. Sebagai gantinya, jadikan sumber daya STRINGTABLE dengan menambahkannya ke file .rc aplikasi. Aplikasi Anda kemudian dapat dilokalkan tanpa memerlukan perubahan kode sumber atau kompilasi ulang. Untuk informasi selengkapnya tentang sumber daya STRINGTABLE, lihat Editor String.

Catatan

Set karakter Eropa dan MBCS memiliki beberapa karakter, seperti huruf beraksen, dengan kode karakter lebih besar dari 0x80. Karena sebagian besar kode menggunakan karakter yang ditandatangani, karakter ini lebih besar dari 0x80 diperpanjang saat dikonversi ke int. Ini adalah masalah untuk pengindeksan array karena karakter yang diperluas tanda, menjadi negatif, indeks di luar array. Bahasa yang menggunakan MBCS, seperti Bahasa Jepang, juga unik. Karena karakter mungkin terdiri dari 1 atau 2 byte, Anda harus selalu memanipulasi kedua byte secara bersamaan.

Baca juga

Unicode dan MBCS
Strategi Internasionalisasi