อาการ
พิจารณาสถานการณ์ต่อไปนี้:
-
คุณมีโครงการ Visual C++ 2010 รหัสแหล่งมาของโครงการมีโครงสร้างหรือคลาสที่เกิน 64 ไบต์
-
คุณสร้างโครงการสำหรับแพลตฟอร์มที่ใช้ x64 และคุณใช้ตัวเลือกของคอมไพเลอร์/O2
-
คุณเรียกใช้แอพลิเคชัน
ในสถานการณ์สมมตินี้ การละเมิดการเข้าถึงเกิดขึ้น และแอพลิเคชันล้มเหลว
สาเหตุ
ปัญหานี้เกิดขึ้นเนื่องจากคอมไพเลอร์ใช้ x64 2010 Studio ภาพกำหนดการรหัส โดยการปรับเปลี่ยนการจัดตำแหน่งการปันส่วนของข้อมูลจาก 64 ไบต์ 16 ไบต์ ดังนั้น ปัญหาหน่วยความจำเกิดขึ้นสำหรับออบเจ็กต์ที่เกิน 64 ไบต์
การแก้ไข
ข้อมูลโปรแกรมแก้ไขด่วน
มีโปรแกรมแก้ไขด่วนที่รองรับพร้อมให้บริการจาก Microsoft อย่างไรก็ตาม โปรแกรมแก้ไขด่วนนี้มุ่งหวังเพื่อการแก้ไขเฉพาะปัญหาที่อธิบายไว้ในบทความนี้ ใช้ hotfix นี้เฉพาะกับระบบต่าง ๆ ที่พบปัญหานี้ โปรแกรมแก้ไขด่วนนี้อาจได้รับการทดสอบเพิ่มเติม ดังนั้น ถ้าคุณไม่ได้รับผลกระทบจากปัญหานี้รุนแรง เราขอแนะนำให้ คุณรอการปรับปรุงซอฟต์แวร์ถัดไปที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ เมื่อต้องการดาวน์โหลดโปรแกรมแก้ไขด่วนนี้จากแกลเลอรีรหัส MSDN แวะไปที่เว็บไซต์ของ Microsoft ต่อไปนี้:
http://code.msdn.microsoft.com/KB2280741หมายเหตุ แกลเลอรีรหัส MSDN แสดงภาษาซึ่งโปรแกรมแก้ไขด่วนพร้อมใช้งานสำหรับภาษานั้น ถ้าคุณไม่เห็นภาษาของคุณปรากฏ อาจเป็น เพราะหน้าแกลเลอรีของรหัสทรัพยากรจะไม่พร้อมใช้งานสำหรับภาษานั้น หมายเหตุ ถ้ามีปัญหาอื่น ๆ เกิดขึ้น หรือถ้าจำเป็นต้องแก้ไขปัญหาใด ๆ คุณอาจต้องสร้างคำขอรับบริการแยกต่างหาก จะมีค่าใช้จ่ายในการสนับสนุนปกติกับคำถามเพิ่มเติมและเรื่องอื่น ๆ ที่ไม่มีสิทธิได้รับโปรแกรมแก้ไขด่วนเฉพาะนี้ สำหรับรายชื่อทั้งหมด ของหมายเลขโทรศัพท์ของฝ่ายบริการลูกค้าและการสนับสนุนของ Microsoft หรือเพื่อสร้างการร้องขอบริการแยกต่างหาก แวะไปที่เว็บไซต์ของ Microsoft ต่อไปนี้:
http://support.microsoft.com/contactus/?ws=supportคุณยังสามารถดาวน์โหลดโปรแกรมแก้ไขด่วนนี้ได้ โดยการเยี่ยมชมเว็บไซต์ของ Microsoft ต่อไปนี้:
https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=31433
ข้อกำหนดเบื้องต้น
เมื่อต้องการใช้โปรแกรมแก้ไขด่วนนี้ คุณต้องมี Visual Studio 2010 ที่ติดตั้งอยู่
ความต้องการในการเริ่มระบบใหม่
คุณไม่ต้องรีสตาร์ทคอมพิวเตอร์หลังจากใช้โปรแกรมแก้ไขด่วน
ข้อมูลการแทนที่โปรแกรมแก้ไขด่วน
โปรแกรมแก้ไขด่วนนี้ไม่ได้แทนโปรแกรมแก้ไขด่วนอื่น ๆ
ข้อมูลไฟล์
เวอร์ชันภาษาอังกฤษของโปรแกรมแก้ไขด่วนนี้มีแอตทริบิวต์ของแฟ้ม (หรือแอตทริบิวต์ของแฟ้มที่ใหม่กว่านี้) ซึ่งแสดงรายการไว้ในตารางต่อไปนี้ วันที่และเวลาสำหรับแฟ้มเหล่านี้จะแสดงรายการไว้ในรูปแบบเวลามาตรฐานสากล (UTC) เมื่อคุณดูข้อมูลแฟ้ม ระบบจะแปลงข้อมูลนี้เป็นเวลาท้องถิ่น เมื่อต้องการค้นหาความแตกต่างระหว่างเวลา UTC กับเวลาท้องถิ่น ใช้แท็บโซนเวลาในรายการวันและเวลา'ใน'แผงควบคุม'
ชื่อไฟล์ |
รุ่นของไฟล์ |
ขนาดไฟล์ |
วันที่ |
เวลา |
แพลตฟอร์ม |
---|---|---|---|---|---|
C2.dll |
16.0.30319.345 |
2,510,144 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,588,480 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,630,976 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,977,088 |
01-Aug-2010 |
23:42 |
x64 |
C2.dll |
16.0.30319.345 |
7,351,616 |
01-Aug-2010 |
23:42 |
IA-64 |
วิธีแก้ไขปัญหาชั่วคราว
เมื่อต้องการหลีกเลี่ยงปัญหานี้ ห้ามใช้ตัวเลือกของคอมไพเลอร์/O2เมื่อคุณสร้างโครงการ
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"