อาการ
คุณใช้ตัวเลือกของคอมไพเลอร์/Ot (หน่อยนะเร็วรหัส)เมื่อคุณสร้างโปรแกรมประยุกต์ที่มีการกำหนดค่าบน x64 แพลตฟอร์มใน Microsoft Visual Studio 2005 Service Pack 1 (SP1) เมื่อคุณเรียกใช้แอพลิเคชัน บางคำสั่งถ้าอาจทำงานไม่ถูกต้อง ดังนั้น ไม่มีอยู่ ตัวอย่างเช่นถ้าคำสั่งที่อาจถูกข้ามในรหัสของแอพลิเคชันสร้างขึ้น
ปัญหานี้เกิดขึ้นในสถานการณ์ต่อไปนี้เท่านั้น-
มีบางคำสั่ง MOV ระหว่างการดำเนินการเปรียบเทียบสอง
-
สิ่งเหล่านี้เปรียบเทียบการดำเนินงานใช้ตัวถูกดำเนินการเดียวกัน
-
มีการเปลี่ยนแปลงค่าของตัวถูกดำเนินการตามคำแนะนำ MOV
ในสถานการณ์สมมตินี้ถ้าคำสั่งในการดำเนินการเปรียบเทียบสองอาจถูกข้ามไป
หมายเหตุ-
ปัญหานี้อาจเกิดขึ้นเมื่อคุณใช้ตัวเลือก/O2หรือ/Oxตัวเลือกในการสร้างแอพลิเคชัน
-
ปัญหานี้เกิดขึ้นบน x86 แพลตฟอร์ม
สาเหตุ
ปัญหานี้เกิดขึ้นเนื่องจากตัวเพิ่มประสิทธิภาพการคอมไพล์เลอร์อย่างไม่ถูกต้องถือว่า สามารถใช้ค่าสถานะที่กำหนด โดยการดำเนินการ XOR โดยไม่รวมถึงการดำเนินการเปรียบเทียบ
การแก้ปัญหา
ข้อมูลโปรแกรมแก้ไขด่วน
มีโปรแกรมแก้ไขด่วนที่รองรับพร้อมให้บริการจาก Microsoft อย่างไรก็ตาม โปรแกรมแก้ไขด่วนนี้มุ่งหวังเพื่อการแก้ไขเฉพาะปัญหาที่อธิบายไว้ในบทความนี้ ใช้การแก้ไขด่วนนี้กับระบบต่าง ๆ ที่พบปัญหาอธิบายไว้ในบทความนี้เท่านั้น โปรแกรมแก้ไขด่วนนี้อาจได้รับการทดสอบเพิ่มเติม ดังนั้น ถ้าคุณไม่ได้รับผลกระทบจากปัญหานี้รุนแรง เราขอแนะนำให้ คุณรอการปรับปรุงซอฟต์แวร์ถัดไปที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้
หากโปรแกรมแก้ไขด่วนพร้อมสำหรับการดาวน์โหลด คุณจะเห็นส่วน "มีโปรแกรมแก้ไขด่วนพร้อมสำหรับการดาวน์โหลด" ที่ด้านบนของบทความฐานข้อมูลองค์ความรู้นี้ หากส่วนนี้ไม่ปรากฏขึ้น ติดต่อฝ่ายสนับสนุนและบริการลูกค้าของ Microsoft เพื่อขอรับโปรแกรมแก้ไขด่วน หมายเหตุ ถ้ามีปัญหาอื่น ๆ เกิดขึ้น หรือถ้าจำเป็นต้องแก้ไขปัญหาใด ๆ คุณอาจต้องสร้างคำขอรับบริการแยกต่างหาก จะมีค่าใช้จ่ายในการสนับสนุนปกติกับคำถามเพิ่มเติมและเรื่องอื่น ๆ ที่ไม่มีสิทธิได้รับโปรแกรมแก้ไขด่วนเฉพาะนี้ สำหรับรายการหมายเลขโทรศัพท์ฉบับสมบูรณ์ของฝ่ายบริการลูกค้าและการสนับสนุนของ Microsoft หรือเพื่อสร้างคำขอรับบริการแยกต่างหาก แวะไปที่เว็บไซต์ Microsoft ต่อไปนี้:http://support.microsoft.com/contactus/?ws=supportหมายเหตุ แบบฟอร์ม "มีโปรแกรมแก้ไขด่วนพร้อมสำหรับการดาวน์โหลด" แสดงภาษาที่โปรแกรมแก้ไขด่วนพร้อมใช้งาน ถ้าคุณไม่เห็นภาษาของคุณ อาจเป็น เพราะไม่มีโปรแกรมแก้ไขด่วนพร้อมใช้งานสำหรับภาษานั้น
ข้อกำหนดเบื้องต้น
คุณต้องมี Visual Studio 2005 SP 1 ติดตั้งอยู่เพื่อใช้โปรแกรมแก้ไขด่วนนี้
ข้อกำหนดการรีสตาร์ท
คุณไม่ต้องรีสตาร์ทคอมพิวเตอร์หลังจากใช้โปรแกรมแก้ไขด่วนนี้
ข้อมูลการแทนที่โปรแกรมแก้ไขด่วน
โปรแกรมแก้ไขด่วนนี้ไม่ได้แทนโปรแกรมแก้ไขด่วนอื่น ๆ
ข้อมูลแฟ้ม
เวอร์ชันภาษาอังกฤษของโปรแกรมแก้ไขด่วนนี้มีแอตทริบิวต์ของแฟ้ม (หรือแอตทริบิวต์ของแฟ้มที่ใหม่กว่านี้) ซึ่งแสดงรายการไว้ในตารางต่อไปนี้ วันที่และเวลาสำหรับแฟ้มเหล่านี้จะแสดงรายการไว้ในรูปแบบเวลามาตรฐานสากล (UTC) เมื่อคุณดูข้อมูลแฟ้ม ระบบจะแปลงข้อมูลนี้เป็นเวลาท้องถิ่น เมื่อต้องการค้นหาความแตกต่างระหว่างเวลา UTC กับเวลาท้องถิ่น ใช้แท็บ โซนเวลา ในรายการ วันที่และเวลา ในแผงควบคุม
ชื่อแฟ้ม |
รุ่นของแฟ้ม |
ขนาดของแฟ้ม |
วันที่ |
เวลา |
แพลตฟอร์ม |
---|---|---|---|---|---|
C2.dll |
14.0.50727.3080 |
2,273,280 |
19 2008 พฤศจิกายน |
18:52 |
x86 |
C2.dll |
14.0.50727.3080 |
7,192,576 |
19 2008 พฤศจิกายน |
23:25 |
IA-64 |
C2.dll |
14.0.50727.3080 |
2,490,368 |
19 2008 พฤศจิกายน |
23:26 |
x86 |
C2.dll |
14.0.50727.3080 |
3,600,384 |
19 2008 พฤศจิกายน |
23:33 |
x64 |
C2.dll |
14.0.50727.3080 |
2,203,648 |
19 2008 พฤศจิกายน |
23:33 |
x86 |
วิธีแก้ปัญหา
เมื่อต้องการหลีกเลี่ยงปัญหานี้ ใช้หนึ่งในวิธีต่อไปนี้:
-
ใช้คำสำคัญที่มีการเปลี่ยนแปลงได้เมื่อคุณประกาศตัวแปรที่ใช้ในใบแจ้งยอดถ้า
-
ปิดใช้งานตัวเลือกความเร็วในการปรับให้เหมาะสม ตัวอย่างเช่น แทนตัวเลือก/Otด้วยอ็อพชัน/Os (รหัสขนาดเล็กหน่อยนะ) หรือ ใช้ตัวเลือก/O1แทนที่เป็นตัวเลือก/O2หรือ/Oxตัวเลือก
-
เพิ่มบรรทัดโค้ดก่อนที่การดำเนินการการเปรียบเทียบงบถ้าในที่สอง ตัวอย่าง เพิ่มคำสั่งprintf
สถานะ
Microsoft ยืนยันว่านี่เป็นปัญหาในผลิตภัณฑ์ของ Microsoft ซึ่งแสดงไว้ในส่วน "นำไปใช้กับ"
ข้อมูลเพิ่มเติม
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรหัสอย่าง น้อยหนึ่งคำสั่งอาจทำงานไม่ถูกต้องเมื่อคุณใช้คุณลักษณะการปรับให้เหมาะสมรหัสใน Visual Studio 2005 คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
925792อย่าง น้อยหนึ่งคำสั่งรหัสอาจทำงานไม่ถูกต้องเมื่อคุณใช้คุณลักษณะการปรับให้เหมาะสมรหัสใน Visual Studio 2005 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับศัพท์เฉพาะในการปรับปรุงซอฟต์แวร์ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
824684คำอธิบายของคำศัพท์มาตรฐานที่ใช้เพื่ออธิบายปรับปรุงซอฟต์แวร์ของ Microsoft