Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Untuk memanfaatkan dukungan run-time MFC dan C untuk Unicode, Anda perlu:
Tentukan
_UNICODE.Tentukan simbol
_UNICODEsebelum Anda membangun program Anda.Tentukan titik masuk.
Pada halaman Tingkat Lanjut folder Linker dalam kotak dialog Halaman Properti proyek, atur simbol Titik Masuk ke
wWinMainCRTStartup.Gunakan fungsi dan jenis run-time portabel.
Gunakan fungsi run-time C yang tepat untuk penanganan string Unicode. Anda dapat menggunakan
wcskeluarga fungsi, tetapi Anda mungkin lebih suka makro yang sepenuhnya portabel (diaktifkan_TCHARsecara internasional). Makro ini semua diawali dengan_tcs; mereka menggantikan, satu untuk satu, untukstrkeluarga fungsi. Fungsi-fungsi ini dijelaskan secara rinci di bagian Internasionalisasi dari Referensi Pustaka Run-Time. Untuk informasi selengkapnya, lihat Pemetaan Teks Generik di tchar.h.Gunakan
_TCHARdan jenis data portabel terkait yang dijelaskan dalam Dukungan untuk Unicode.Tangani string harfiah dengan benar.
Pengkompilasi Visual C++ menginterpretasikan string harfiah yang dikodekan sebagai:
L"this is a literal string"untuk berarti string karakter Unicode. Anda dapat menggunakan awalan yang sama untuk karakter harfiah.
_TGunakan makro untuk mengodekan string harfiah secara generis, sehingga dikompilasi sebagai string Unicode di bawah Unicode atau sebagai string ANSI (termasuk MBCS) tanpa Unicode. Misalnya, sebagai ganti dari:pWnd->SetWindowText( "Hello" );gunakan:
pWnd->SetWindowText( _T("Hello") );Dengan
_UNICODEdidefinisikan,_Tmenerjemahkan string harfiah ke formulir awalan L; jika tidak,_Tmenerjemahkan string tanpa awalan L.Petunjuk / Saran
_TMakro identik dengan_TEXTmakro.Hati-hati meneruskan panjang string ke fungsi.
Beberapa fungsi menginginkan jumlah karakter dalam string; yang lain menginginkan jumlah byte. Misalnya, jika
_UNICODEditentukan, panggilan berikut keCArchiveobjek tidak akan berfungsi (stradalahCString):archive.Write( str, str.GetLength( ) ); // invalidDalam aplikasi Unicode, panjangnya memberi Anda jumlah karakter tetapi bukan jumlah byte yang benar, karena setiap karakter memiliki lebar 2 byte. Sebagai gantinya, Anda harus menggunakan:
archive.Write( str, str.GetLength( ) * sizeof( _TCHAR ) ); // validyang menentukan jumlah byte yang benar untuk ditulis.
Namun, fungsi anggota MFC yang berorientasi karakter, bukan berorientasi byte, bekerja tanpa pengkodan tambahan ini:
pDC->TextOut( str, str.GetLength( ) );CDC::TextOutmengambil sejumlah karakter, bukan sejumlah byte.Gunakan fopen_s, _wfopen_s untuk membuka file Unicode.
Untuk meringkas, MFC dan pustaka run-time menyediakan dukungan berikut untuk pemrograman Unicode:
Kecuali untuk fungsi anggota kelas database, semua fungsi MFC diaktifkan Unicode, termasuk
CString.CStringjuga menyediakan fungsi konversi Unicode/ANSI.Pustaka run-time menyediakan versi Unicode dari semua fungsi penanganan string. (Pustaka run-time juga menyediakan versi portabel yang cocok untuk Unicode atau untuk MBCS. Ini adalah
_tcsmakro.)tchar.h menyediakan jenis data portabel dan
_Tmakro untuk menerjemahkan string dan karakter harfiah. Untuk informasi selengkapnya, lihat Pemetaan Teks Generik di tchar.h.Pustaka run-time menyediakan versi karakter luas dari
main. Gunakanwmainuntuk membuat aplikasi Anda sadar Unicode.