สำหรับรุ่น Microsoft Visual Studio 2008 ของบทความนี้ ดู980263
อาการ
พิจารณาสถานการณ์ต่อไปนี้:
-
คุณสามารถสร้างโครงการ Visual C++ ใน Microsoft Visual Studio 2010
-
แฟ้มในโครงการเริ่มต้นตัวอักษรสตริงที่แคบขึ้น ตัวอักษรเหล่านี้สตริงที่ประกอบด้วยอักขระเอเชีย และได้นำหน้า ด้วยตัวอักษร "ประเภททั่วไป"
-
แฟ้มถูกบันทึก โดยใช้การเข้ารหัส UTF-8
ในสถานการณ์สมมตินี้ เมื่อคุณคอมไพล์โครงการ แบบตัวอักษรสตริงที่มี misinterpreted โดยคอมไพเลอร์ นอกจากนี้ คุณพบปัญหาหนึ่งปัญหาต่อไปนี้:
-
เมื่อแฟ้มประกอบด้วยเครื่องหมายคำสั่งไบต์ (BOM), การดำเนินการคอมไพล์สำเร็จ อย่างไรก็ตาม ตัวอักษรสตริงที่จะยังคงแสดงอยู่ไม่ถูกต้องในแอพลิเคชันสร้างขึ้น นอกจากนี้ คุณอาจได้รับข้อความเตือนต่อไปนี้เมื่อคุณคอมไพล์โครงการ:
คำเตือน C4566: อักขระที่แทน โดยสากล--ชื่ออักขระ 'xx' ไม่สามารถแสดงในโค้ดเพจปัจจุบัน
-
การดำเนินการคอมไพล์ล้มเหลว นอกจากนี้ คุณอาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้เมื่อคุณคอมไพล์โครงการ:
ข้อผิดพลาด C2078: initializers มากเกินไป
-
การดำเนินการคอมไพล์ล้มเหลว นอกจากนี้ คุณอาจได้รับข้อความเตือนต่อไปนี้เมื่อคุณคอมไพล์โครงการ:
คำเตือน C4129: 'อักขระ': รู้จักอักขระ escape ลำดับ
สาเหตุ
ปัญหานี้เกิดขึ้นเนื่องจากคอมไพเลอร์ถือว่า ตัวอักษรในแฟ้มไม่สามารถตีความเป็นไบต์ลูกค้าเป้าหมายของ mbcs ได้เข้ารหัสแทนที่จะเป็น Unicode ไบต์เดี่ยว เนื่องจากปัญหานี้ คอมไพเลอร์แปลแฟ้มไม่ถูกต้อง
การแก้ไข
เมื่อต้องการแก้ไขปัญหานี้ ใช้โปรแกรมแก้ไขด่วนนี้กับคอมพิวเตอร์ที่คุณรวบรวมโครงการ แล้ว บันทึกแฟ้มพร้อม ด้วยเครื่องหมายคำสั่งไบต์ และเพิ่มไดเรกทีฟ "pragma" ต่อไปนี้ก่อนตัวอักษรของสายอักขระในแฟ้มต้นฉบับ:
#pragma execution_character_set("utf-8")
หมายเหตุ ไดเรกทีฟ "pragma" นี้ตั้งค่าหน่วยการแปลสำหรับแฟ้มต้นฉบับจนกว่าไดเรกทีฟ "pragma" นี้จะถูกแทนที่ โดยไดเรกทีฟ "pragma" อื่น
ข้อมูลเพิ่มเติมเกี่ยวกับโปรแกรมแก้ไขด่วนนี้
ข้อมูลโปรแกรมแก้ไขด่วน
โปรแกรมแก้ไขด่วนจะพร้อมใช้งานได้ในขณะนี้จาก Microsoft อย่างไรก็ตาม มุ่งหวังเพื่อแก้ไขปัญหาที่อธิบายไว้ในบทความนี้เท่านั้น นำวิธีนี้ไปใช้กับระบบที่ประสบกับปัญหาที่เฉพาะเจาะจงเท่านั้น โปรแกรมแก้ไขด่วนนี้อาจได้รับการทดสอบเพิ่มเติม ดังนั้น ถ้าคุณจะไม่รุนแรงได้รับผลกระทบจากปัญหานี้ เราขอแนะนำให้ คุณรอถัดไปที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ เมื่อต้องการแก้ไขปัญหานี้ทันที ติดต่อฝ่ายบริการสนับสนุนลูกค้าของ Microsoft เพื่อขอรับโปรแกรมแก้ไขด่วน สำหรับรายชื่อทั้งหมดของหมายเลขโทรศัพท์ของบริการการสนับสนุนลูกค้าของ Microsoft และข้อมูลเกี่ยวกับค่าใช้จ่ายสนับสนุน แวะไปที่เว็บไซต์ของ Microsoft ต่อไปนี้:
http://support.microsoft.com/contactus/?ws=supportหมายเหตุ ในกรณีพิเศษ ค่าบริการที่เรียกเก็บตามปกติเมื่อโทรติดต่อฝ่ายสนับสนุนอาจจะยกเลิกได้หาก Microsoft Support Professional ตัดสินว่าโปรแกรมปรับปรุงที่เฉพาะเจาะจงจะแก้ไขปัญหาของคุณได้ ค่าใช้จ่ายในการสนับสนุนตามปกติจะใช้กับคำถามและปัญหาในการสนับสนุนเพิ่มเติมซึ่งไม่สอดคล้องตามเกณฑ์สำหรับโปรแกรมปรับปรุงเฉพาะที่เกี่ยวข้อง
ข้อกำหนดเบื้องต้น
คุณต้องมี Microsoft Visual Studio 2010 ติดตั้งอยู่เพื่อใช้โปรแกรมแก้ไขด่วนนี้
ข้อมูลการเริ่มระบบใหม่
คุณไม่ต้องรีสตาร์ทคอมพิวเตอร์หลังจากใช้โปรแกรมแก้ไขด่วนนี้
ข้อมูลไฟล์
เวอร์ชันภาษาอังกฤษของโปรแกรมแก้ไขด่วนนี้มีแอตทริบิวต์ของแฟ้ม (หรือแอตทริบิวต์ของแฟ้มที่ใหม่กว่านี้) ซึ่งแสดงรายการไว้ในตารางต่อไปนี้ วันที่และเวลาสำหรับแฟ้มเหล่านี้จะแสดงรายการไว้ในรูปแบบเวลามาตรฐานสากล (UTC) เมื่อคุณดูข้อมูลแฟ้ม ระบบจะแปลงข้อมูลนี้เป็นเวลาท้องถิ่น เมื่อต้องการค้นหาความแตกต่างระหว่างเวลา UTC กับเวลาท้องถิ่น ใช้แท็บ โซนเวลา ในรายการ วันที่และเวลา ในแผงควบคุม
ชื่อไฟล์ |
รุ่นของไฟล์ |
ขนาดไฟล์ |
วันที่ |
เวลา |
แพลตฟอร์ม |
---|---|---|---|---|---|
C1.dll |
16.0.30319.351 |
658,240 |
23-Aug-2010 |
06:45 |
x86 |
C1.dll |
16.0.30319.351 |
723,776 |
23-Aug-2010 |
06:45 |
x86 |
C1.dll |
16.0.30319.351 |
899,400 |
23-Aug-2010 |
06:45 |
x86 |
C1xx.dll |
16.0.30319.351 |
2,286,920 |
23-Aug-2010 |
06:45 |
x86 |
C1xx.dll |
16.0.30319.351 |
2,428,232 |
23-Aug-2010 |
06:45 |
x86 |
C1xx.dll |
16.0.30319.351 |
2,659,664 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
201,032 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
202,568 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
219,976 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
221,000 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
290,632 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
291,656 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
292,680 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
293,704 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
408,392 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
408,904 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
450,376 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
460,104 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
460,616 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
478,024 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
478,536 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
483,656 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
484,168 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
486,728 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
487,240 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
491,848 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
492,360 |
23-Aug-2010 |
06:45 |
x86 |
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"