อาการ
พิจารณาสถานการณ์สมมติต่อไปนี้:
-
คุณสามารถสร้างโครงการ Visual C++ ใน Microsoft Visual Studio 2008 Service Pack 1 (SP1)
-
แฟ้มในโครงการมีตัวอักษรสตริงที่แคบ ตัวอักษรเหล่านี้สตริงที่ประกอบด้วยอักขระเอเชีย และได้นำหน้า ด้วยตัวอักษร "ประเภททั่วไป"
-
ตัวอักษรสตริงที่จะใช้การเข้ารหัส UTF-8
ในสถานการณ์สมมตินี้ เมื่อคุณคอมไพล์โครงการ แบบตัวอักษรสตริงที่มี misinterpreted โดยคอมไพเลอร์ นอกจากนี้ คุณพบปัญหาหนึ่งปัญหาต่อไปนี้:
-
การดำเนินการคอมไพล์เสร็จสมบูรณ์ อย่างไรก็ตาม ตัวอักษรสตริงที่แสดงอย่างไม่ถูกต้องในแอพลิเคชันสร้างขึ้น นอกจากนี้ คุณอาจได้รับข้อความเตือนต่อไปนี้เมื่อคุณคอมไพล์โครงการ:
คำเตือน C4566: อักขระที่แทน โดยสากล--ชื่ออักขระ 'xx' ไม่สามารถแสดงในหน้ารหัสปัจจุบันได้
-
การดำเนินการคอมไพล์ล้มเหลว นอกจากนี้ คุณอาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้เมื่อคุณคอมไพล์โครงการ:
ข้อผิดพลาด C2078: initializers มากเกินไป
สาเหตุ
ปัญหานี้เกิดขึ้นเนื่องจากคอมไพเลอร์ถือว่า แฟ้มในส่วน "อาการ" ได้มีการเข้ารหัส mbcs ได้ เนื่องจากพฤติกรรมนี้ compilerincorrectly แปลแฟ้ม
การแก้ปัญหา
ข้อมูลโปรแกรมแก้ไขด่วน
มีโปรแกรมแก้ไขด่วนที่รองรับพร้อมให้บริการจาก Microsoft อย่างไรก็ตาม โปรแกรมแก้ไขด่วนนี้มุ่งหวังเพื่อการแก้ไขเฉพาะปัญหาที่อธิบายไว้ในบทความนี้ ใช้ hotfix นี้เฉพาะกับระบบต่าง ๆ ที่พบปัญหานี้
หากโปรแกรมแก้ไขด่วนพร้อมสำหรับการดาวน์โหลด คุณจะเห็นส่วน "มีโปรแกรมแก้ไขด่วนพร้อมสำหรับการดาวน์โหลด" ที่ด้านบนของบทความฐานข้อมูลองค์ความรู้นี้ หากส่วนนี้ไม่ปรากฏขึ้น ส่งคำขอถึงฝ่ายบริการและการสนับสนุนลูกค้าของ Microsoft และวิธีการขอรับโปรแกรมแก้ไขด่วน
หมายเหตุ ถ้ามีปัญหาอื่น ๆ เกิดขึ้น หรือถ้าจำเป็นต้องแก้ไขปัญหาใด ๆ คุณอาจต้องสร้างคำขอรับบริการแยกต่างหาก จะมีค่าใช้จ่ายในการสนับสนุนปกติกับคำถามเพิ่มเติมและเรื่องอื่น ๆ ที่ไม่มีสิทธิได้รับโปรแกรมแก้ไขด่วนเฉพาะนี้ สำหรับรายการหมายเลขโทรศัพท์ฉบับสมบูรณ์ของฝ่ายบริการลูกค้าและการสนับสนุนของ Microsoft หรือเพื่อสร้างคำขอรับบริการแยกต่างหาก แวะไปที่เว็บไซต์ Microsoft ต่อไปนี้:
http://support.microsoft.com/contactus/?ws=supportหมายเหตุ แบบฟอร์ม "มีโปรแกรมแก้ไขด่วนพร้อมสำหรับการดาวน์โหลด" แสดงภาษาที่โปรแกรมแก้ไขด่วนพร้อมใช้งาน ถ้าคุณไม่เห็นภาษาของคุณ อาจเป็น เพราะไม่มีโปรแกรมแก้ไขด่วนพร้อมใช้งานสำหรับภาษานั้น
ข้อกำหนดเบื้องต้น
คุณต้องมี Visual Studio 2008 Service Pack 1 (SP1) ติดตั้งอยู่เพื่อใช้โปรแกรมแก้ไขด่วนนี้
ข้อกำหนดการรีสตาร์ท
คุณไม่ต้องรีสตาร์ทคอมพิวเตอร์หลังจากใช้โปรแกรมแก้ไขด่วนนี้ถ้าไม่มีอินสแตนซ์ของ Visual Studio กำลังถูกใช้งาน
ข้อมูลการแทนที่โปรแกรมแก้ไขด่วน
โปรแกรมแก้ไขด่วนนี้ไม่ได้แทนโปรแกรมแก้ไขด่วนอื่น ๆ
ข้อมูลแฟ้ม
เวอร์ชันภาษาอังกฤษของโปรแกรมแก้ไขด่วนนี้มีแอตทริบิวต์ของแฟ้ม (หรือแอตทริบิวต์ของแฟ้มที่ใหม่กว่านี้) ซึ่งแสดงรายการไว้ในตารางต่อไปนี้ วันที่และเวลาสำหรับแฟ้มเหล่านี้จะแสดงรายการไว้ในรูปแบบเวลามาตรฐานสากล (UTC) เมื่อคุณดูข้อมูลแฟ้ม ระบบจะแปลงข้อมูลนี้เป็นเวลาท้องถิ่น เมื่อต้องการค้นหาความแตกต่างระหว่างเวลา UTC กับเวลาท้องถิ่น ใช้แท็บ โซนเวลา ในรายการ วันที่และเวลา ในแผงควบคุม
ชื่อแฟ้ม |
รุ่นของแฟ้ม |
ขนาดของแฟ้ม |
วันที่ |
เวลา |
แพลตฟอร์ม |
---|---|---|---|---|---|
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 |
สถานะ
Microsoft ยืนยันว่านี่เป็นปัญหาในผลิตภัณฑ์ของ Microsoft ซึ่งแสดงไว้ในส่วน "นำไปใช้กับ"
ข้อมูลเพิ่มเติม
เมื่อต้องการแก้ไขข้อผิดพลาดในการคอมไพล์เลอร์ การติดตั้งโปรแกรมแก้ไขด่วนนี้ และจากนั้น บันทึกแฟ้มพร้อม ด้วยเครื่องหมายคำสั่งไบต์ นอกจากนี้ เพิ่มไดเรกทีฟ "pragma" ต่อไปนี้ก่อนตัวอักษรของสายอักขระในแฟ้มต้นฉบับ
#pragma execution_character_set("utf-8")
หมายเหตุ ไดเรกทีฟ "pragma" ตั้งค่าหน่วยการแปลสำหรับแฟ้มต้นฉบับจนกว่าคำสั่ง "pragma" จะถูกแทนที่ โดยไดเรกทีฟ "pragma" อื่น