Gejala
Pertimbangkan skenario berikut ini:
-
Anda membuat proyek Visual C++ di Microsoft Visual Studio 2008 Paket Layanan 1 (SP1).
-
Berkas proyek telah menyempit string literal. String literal ini berisi karakter Asia dan tidak diawali dengan huruf "L"
-
String literal gunakan pengkodean UTF-8.
Dalam skenario ini, ketika Anda menyusun proyek, string literal yang disalahartikan oleh kompilator. Selain itu, Anda mengalami salah satu masalah berikut ini:
-
Menghimpun operasi berhasil. Namun, string literal tidak ditampilkan dengan benar di aplikasi yang dihasilkan. Selain itu, Anda mungkin juga menerima pesan peringatan berikut ini ketika Anda menyusun proyek:
peringatan C4566: karakter yang diwakili oleh nama universal karakter 'xx' tidak dapat ditunjukkan di halaman kode saat ini.
-
Menghimpun operasi gagal. Selain itu, Anda mungkin menerima pesan galat ketika Anda menyusun proyek:
galat C2078: terlalu banyak initializers
Penyebab
Masalah ini terjadi karena kompilator mengasumsikan bahwa berkas di bagian "Gejala" memiliki MBCS pengkodean. Karena perilaku ini, compilerincorrectly menerjemahkan file.
Pemecahan masalah
Informasi Hotfix
Tersedia hotfix yang didukung dari Microsoft. Namun, hotfix ini ditujukan untuk memperbaiki masalah yang dijelaskan di artikel ini. Menerapkan hotfix ini hanya ke sistem yang mengalami masalah khusus ini.
Apabila hotfix tersedia untuk diunduh, ada bagian "Tersedia unduhan Hotfix" di bagian atas artikel Pangkalan Pengetahuan ini. Jika bagian ini tidak muncul, kirimkan permintaan ke layanan pelanggan Microsoft dan dukungan untuk mendapatkan hotfix.
Catatan Jika terjadi masalah tambahan atau apabila pemecahan masalah apa pun diperlukan, Anda mungkin harus membuat permintaan layanan secara terpisah. Biaya dukungan biasa akan berlaku untuk dukungan tambahan pertanyaan dan masalah yang tidak memenuhi syarat untuk hotfix ini. Untuk daftar lengkap nomor telepon layanan pelanggan Microsoft dan dukungan atau untuk membuat permintaan layanan terpisah, kunjungi situs Web Microsoft berikut ini:
http://support.microsoft.com/contactus/?ws=supportCatatan Formulir "Tersedia Unduhan Hotfix" menampilkan bahasa hotfix tersedia. Jika Anda tidak melihat bahasa Anda, hal ini karena hotfix tidak tersedia untuk bahasa tersebut.
Prasyarat
Anda harus memiliki Visual Studio 2008 Paket Layanan 1 (SP1) diinstal untuk menerapkan hotfix ini.
Persyaratan menghidupkan ulang
Anda tidak harus me-restart komputer setelah menerapkan hotfix ini jika tidak ada item dari Visual Studio sedang digunakan.
Informasi penggantian hotfix
Hotfix ini tidak menggantikan hotfix lainnya.
Informasi file
Versi bahasa Inggris dari hotfix ini memiliki atribut berkas (atau atribut berkas yang lebih baru) yang tercantum dalam tabel berikut. Tanggal dan waktu untuk berkas-berkas tersebut dicantumkan dalam Waktu Universal Terkoordinasi (UTC). Ketika Anda melihat informasi berkas, akan diubah ke waktu lokal. Untuk menemukan perbedaan antara waktu UTC dan waktu lokal, gunakan tab Zona Waktu di item Tanggal dan Waktu di Panel Kontrol.
Nama file |
Versi file |
Ukuran file |
Tanggal |
Waktu |
Platform |
---|---|---|---|---|---|
C1.dll |
15.0.30729.4987 |
678,720 |
09-Mar-2010 |
10:18 |
x86 |
C1xx.dll |
15.0.30729.4987 |
2,204,488 |
09-Mar-2010 |
10:18 |
x86 |
C1xx.dll |
15.0.30729.4987 |
2,215,240 |
09-Mar-2010 |
10:18 |
x86 |
C1xx.dll |
15.0.30729.4987 |
2,339,656 |
09-Mar-2010 |
10:18 |
x86 |
C1xx.dll |
15.0.30729.4987 |
2,505,552 |
09-Mar-2010 |
10:18 |
x86 |
C1xx.dll |
15.0.30729.4987 |
2,891,592 |
09-Mar-2010 |
10:18 |
x64 |
Status
Microsoft telah memastikan bahwa ini merupakan masalah di dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".
Informasi lebih lanjut
Untuk menyelesaikan galat pada compiler, menginstal perbaikan terbaru ini, dan kemudian simpan berkas bersama-sama dengan tanda perintah byte. Selain itu, tambahkan perintah "pragma" berikut sebelum string literal dalam berkas sumber.
#pragma execution_character_set("utf-8")
Catatan Petunjuk "pragma" menetapkan unit terjemahan untuk berkas sumber sampai petunjuk "pragma" digantikan oleh lain "pragma" petunjuk.