การแก้ไข: บนคอมพิวเตอร์ที่ใช้ใน.NET Framework 3.5 Service Pack 1 คอมไพเลอร์ JIT และตัวที่ Native รูปสร้าง (Ngen.exe) ที่ใช้แฟ้ม Mscorjit.dll อาจสร้างรหัสที่ไม่ถูกต้อง

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 957542 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

อาการ

บนคอมพิวเตอร์ที่รัน Microsoft .NET Framework 3.5 Service Pack 1 (SP1), คอมไพเลอร์ (JIT) เพิ่ง--เวลาและตัวที่ Native รูปสร้าง (Ngen.exe) ที่ใช้แฟ้ม Mscorjit.dll อาจสร้างรหัสที่ไม่ถูกต้อง ดังนั้น เป็นโปรแกรมประยุกต์ c ++ที่จัดการ 32 บิตอาจสร้างผลลัพธ์ที่ไม่ถูกต้อง

ปัญหานี้จะเกิดขึ้นหากมีเงื่อนไขต่อไปนี้::
  • struct หรือคลาในรหัสต้นทางได้น้อยกว่า varieties สเกลาที่สี่และไม่มีการอ้างอิงวัตถุที่ได้รับการจัดการ
  • คุณใช้คำสั่งการ Cpblk หรือคำสั่งการ Initblk
หมายเหตุ:ปัญหานี้ไม่ได้เกิดขึ้นในโปรแกรมประยุกต์ 64 บิต

สาเหตุ

ปัญหานี้เกิดขึ้นเนื่องจากมีปัญหาใน.NET Framework 3.5 SP1

การแก้ไข

ข้อมูลโปรแกรมแก้ไขด่วน

โปรแกรมแก้ไขด่วนที่ได้รับการสนับสนุนจาก Microsoft พร้อมใช้งานแล้ว อย่างไรก็ตาม โปรแกรมแก้ไขด่วนนี้มีเป้าหมายเพื่อการแก้ไขปัญหาที่อธิบายไว้ในบทความนี้เท่านั้น นำโปรแกรมแก้ไขด่วนนี้ไปใช้กับระบบที่พบปัญหานี้เท่านั้น โปรแกรมแก้ไขด่วนนี้อาจได้รับการทดสอบเพิ่มเติม ดังนั้น หากคุณไม่ได้รับความเสียหายรุนแรงจากปัญหานี้ เราขอแนะนำให้คุณรอการปรับปรุงซอฟต์แวร์ถัดไปที่มีโปรแกรมแก้ไขด่วนนี้

ถ้าต้องการดาวน์โหลดการแก้ไขด่วนนี้จาก MSDN Code Gallery โปรดเข้าสู่เว็บไซต์ของ Microsoft ดังต่อไปนี้::
http://code.msdn.microsoft.com/KB957542

หมายเหตุ:เก็บรหัส MSDN แสดงภาษาในโปรแกรมแก้ไขด่วนมีอยู่ ถ้าคุณไม่พบภาษาของคุณปรากฏอยู่ แสดงว่าเพจทรัพยากรของ Code Gallery ไม่มีให้บริการสำหรับภาษานั้น

หมายเหตุ:หากเกิดปัญหาอื่น ๆ หรือ ถ้ามีการแก้ไขปัญหาเป็นสิ่งจำเป็น คุณอาจต้องสร้างการร้องขอบริการแยกต่างหาก ค่าใช้จ่ายในการสนับสนุนปกติจะเกิดขึ้นเมื่อมีคำถามและประเด็นการสนับสนุนอื่นๆ ซึ่งไม่จัดอยู่ในโปรแกรมแก้ไขด่วนเฉพาะที่กล่าวถึงนี้ สำหรับรายการของหมายเลขโทรศัพท์ของฝ่ายบริการและการสนับสนุนลูกค้าของ Microsoft ทั้งหมด หรือถ้าต้องการสร้างคำขอรับการสนับสนุนแยกต่างหาก โปรดเข้าสู่เว็บไซต์ของ Microsoft ต่อไปนี้::
http://support.microsoft.com/contactus/?ws=support
หมายเหตุ:ถ้าคุณมีโปรแกรมประยุกต์แบบ 32 บิตที่ทำงานบนแพลตฟอร์มแบบ 64 บิต ใช้โปรแกรมแก้ไขด่วนสำหรับรุ่น 64 บิตเพื่อแก้ไขปัญหานี้

ข้อกำหนดเบื้องต้น

คุณต้องมี.NET Framework 3.5 SP1 ติดตั้งให้ใช้โปรแกรมแก้ไขด่วนนี้

ข้อกำหนดในการเริ่มต้นระบบคอมพิวเตอร์ใหม่

คุณอาจต้องรีสตาร์ทคอมพิวเตอร์หากใด ๆ ของแฟ้มที่ได้รับการปรับปรุงการใช้

ข้อมูลการทดแทนโปรแกรมแก้ไขด่วน

โปรแกรมแก้ไขด่วนนี้ไม่ได้แทนฮอตฟิกซ์อื่น ๆ

ข้อมูลแฟ้ม

โปรแกรมแก้ไขด่วนรุ่นภาษาอังกฤษนี้มีแอตทริบิวต์แฟ้ม (หรือแอตทริบิวต์แฟ้มหลังจากนี้) ซึ่งแสดงในตารางต่อไปนี้ วันที่และเวลาของแฟ้มเหล่านี้จะปรากฏในรูปแบบเวลามาตรฐานสากล (UTC) เมื่อคุณดูข้อมูลแฟ้ม ข้อมูลจะถูกแปลงเป็นเวลาท้องถิ่น เมื่อต้องการค้นหาความแตกต่างระหว่างเวลา UTC กับเวลาท้องถิ่น ใช้โซนเวลาแท็บในนั้นวันที่และเวลารายการใน'แผงควบคุม'
windows 2000, Windows XP และ Windows Server 2003, x รุ่น 86
ยุบตารางนี้ขยายตารางนี้
ชื่อแฟ้มรุ่นของแฟ้มขนาดแฟ้มวันที่เวลา
Mscordacwks.dll2.0.50727.3068992,26416 Sep 200813:13
Mscorjit.dll2.0.50727.3068367,10416 Sep 200813:13
Mscorlib.dll2.0.50727.30684,546,56016 Sep 200813:13
Mscorwks.dll2.0.50727.30685,815,80816 Sep 200813:13
windows 2000, Windows XP และ Windows Server 2003, x รุ่น 64
ยุบตารางนี้ขยายตารางนี้
ชื่อแฟ้มรุ่นของแฟ้มขนาดแฟ้มวันที่เวลาแพลทฟอร์ม
Mscordacwks.dll2.0.50727.3068992,26416 Sep 200813:13x86
Mscorjit.dll2.0.50727.3068367,10416 Sep 200813:13x86
Mscorlib.dll2.0.50727.30684,546,56016 Sep 200813:13x86
Mscorwks.dll2.0.50727.30685,815,80816 Sep 200813:13x86
Mscordacwks.dll2.0.50727.30681,767,94416 Sep 200810:33x64
Mscorjit.dll2.0.50727.30681,580,03216 Sep 200810:33x64
Mscorlib.dll2.0.50727.30684,562,94416 Sep 200810:33x64
Mscorwks.dll2.0.50727.306810,079,74416 Sep 200810:33x64
windows 2000, Windows XP และ Windows Server 2003 รุ่น IA 64
ยุบตารางนี้ขยายตารางนี้
ชื่อแฟ้มรุ่นของแฟ้มขนาดแฟ้มวันที่เวลาแพลทฟอร์ม
Mscordacwks.dll2.0.50727.3068992,26416 Sep 200813:13x86
Mscorjit.dll2.0.50727.3068367,10416 Sep 200813:13x86
Mscorlib.dll2.0.50727.30684,546,56016 Sep 200813:13x86
Mscorwks.dll2.0.50727.30685,815,80816 Sep 200813:13x86
Mscordacwks.dll2.0.50727.30683,087,88016 Sep 200810:44IA-64
Mscorjit.dll2.0.50727.30682,560,51216 Sep 200810:44IA-64
Mscorlib.dll2.0.50727.30684,005,88816 Sep 200810:44IA-64
Mscorwks.dll2.0.50727.306820,153,85616 Sep 200810:44IA-64
windows Vista Service Pack 1 (SP1) และ Windows Server 2008, x รุ่น 86
ยุบตารางนี้ขยายตารางนี้
ชื่อแฟ้มรุ่นของแฟ้มขนาดแฟ้มวันที่เวลาแพลทฟอร์ม
Mscorlib.resources.dll2.0.50727.3053352,25615 Sep 200822:25x86
Mscorlib.resources.dll2.0.50727.3053303,10415 Sep 200822:25x86
Mscorlib.resources.dll2.0.50727.3053299,00815 Sep 200822:25x86
Mscorlib.resources.dll2.0.50727.3053315,39227-ก.ค.-200817:58x86
Mscorlib.resources.dll2.0.50727.3053425,98415 Sep 200822:25x86
Mscorlib.resources.dll2.0.50727.3053307,20027-ก.ค.-200817:58x86
Mscorlib.resources.dll2.0.50727.3053299,00815 Sep 200822:25x86
Mscorlib.resources.dll2.0.50727.3053311,29627-ก.ค.-200817:58x86
Mscorlib.resources.dll2.0.50727.3053331,77615 Sep 200822:25x86
Mscorlib.resources.dll2.0.50727.3053315,39215 Sep 200822:25x86
Mscorlib.resources.dll2.0.50727.3053307,20027-ก.ค.-200817:55x86
Mscorlib.resources.dll2.0.50727.3053348,16027-ก.ค.-200817:58x86
Mscorlib.resources.dll2.0.50727.3053319,48827-ก.ค.-200817:55x86
Mscorlib.resources.dll2.0.50727.3053290,81615 Sep 200822:25x86
Mscorlib.resources.dll2.0.50727.3053303,10415 Sep 200822:25x86
Mscorlib.resources.dll2.0.50727.3053311,29615 Sep 200822:25x86
Mscorlib.resources.dll2.0.50727.3053303,10427-ก.ค.-200817:55x86
Mscorlib.resources.dll2.0.50727.3053307,20015 Sep 200822:25x86
Mscorlib.resources.dll2.0.50727.1434397,31211 2008 แจ22:59x86
Mscorlib.resources.dll2.0.50727.3053299,00815 Sep 200822:25x86
Mscorlib.resources.dll2.0.50727.3053299,00815 Sep 200822:25x86
Mscorlib.resources.dll2.0.50727.3053278,52827-ก.ค.-200817:55x86
Mscorlib.resources.dll2.0.50727.3053278,52827-ก.ค.-200817:55x86
Big5.nlpไม่สามารถใช้งานได้66,72818 2007 ธ.ค.21:03ไม่สามารถใช้งานได้
Bopomofo.nlpไม่สามารถใช้งานได้82,17218 2007 ธ.ค.21:03ไม่สามารถใช้งานได้
Ksc.nlpไม่สามารถใช้งานได้116,75618 2007 ธ.ค.21:04ไม่สามารถใช้งานได้
Mscorlib.dll2.0.50727.30684,546,56001 2008 Oct22:27x86
Normidna.nlpไม่สามารถใช้งานได้59,34218 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Normnfc.nlpไม่สามารถใช้งานได้45,79418 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Normnfd.nlpไม่สามารถใช้งานได้39,28418 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Normnfkc.nlpไม่สามารถใช้งานได้66,38418 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Normnfkd.nlpไม่สามารถใช้งานได้60,29418 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Prc.nlpไม่สามารถใช้งานได้83,74818 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Prcp.nlpไม่สามารถใช้งานได้83,74818 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Sortkey.nlpไม่สามารถใช้งานได้262,14818 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Sorttbls.nlpไม่สามารถใช้งานได้20,32018 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Xjis.nlpไม่สามารถใช้งานได้28,28818 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Mscordacwks.dll2.0.50727.3068992,26401 2008 Oct22:27x86
Mscorjit.dll2.0.50727.3068367,10424 Sep 200822:21x86
Mscorwks.dll2.0.50727.30685,815,80801 2008 Oct22:27x86
windows Vista SP1 และ Windows Server 2008, x รุ่น 64
ยุบตารางนี้ขยายตารางนี้
ชื่อแฟ้มรุ่นของแฟ้มขนาดแฟ้มวันที่เวลาแพลทฟอร์ม
Big5.nlpไม่สามารถใช้งานได้66,72818 2007 ธ.ค.21:01ไม่สามารถใช้งานได้
Bopomofo.nlpไม่สามารถใช้งานได้82,17218 2007 ธ.ค.21:01ไม่สามารถใช้งานได้
Ksc.nlpไม่สามารถใช้งานได้116,75618 2007 ธ.ค.21:02ไม่สามารถใช้งานได้
Mscorlib.dll2.0.50727.30684,562,94401 2008 Oct22:25x64
Normidna.nlpไม่สามารถใช้งานได้59,34218 2007 ธ.ค.21:03ไม่สามารถใช้งานได้
Normnfc.nlpไม่สามารถใช้งานได้45,79418 2007 ธ.ค.21:03ไม่สามารถใช้งานได้
Normnfd.nlpไม่สามารถใช้งานได้39,28418 2007 ธ.ค.21:03ไม่สามารถใช้งานได้
Normnfkc.nlpไม่สามารถใช้งานได้66,38418 2007 ธ.ค.21:03ไม่สามารถใช้งานได้
Normnfkd.nlpไม่สามารถใช้งานได้60,29418 2007 ธ.ค.21:03ไม่สามารถใช้งานได้
Prc.nlpไม่สามารถใช้งานได้83,74818 2007 ธ.ค.21:03ไม่สามารถใช้งานได้
Prcp.nlpไม่สามารถใช้งานได้83,74818 2007 ธ.ค.21:03ไม่สามารถใช้งานได้
Sortkey.nlpไม่สามารถใช้งานได้262,14818 2007 ธ.ค.21:03ไม่สามารถใช้งานได้
Sorttbls.nlpไม่สามารถใช้งานได้20,32018 2007 ธ.ค.21:03ไม่สามารถใช้งานได้
Xjis.nlpไม่สามารถใช้งานได้28,28818 2007 ธ.ค.21:03ไม่สามารถใช้งานได้
Mscordacwks.dll2.0.50727.30681,767,94401 2008 Oct22:25x64
Mscorjit.dll2.0.50727.30681,580,03224 Sep 200823:06x64
Mscorwks.dll2.0.50727.306810,079,74401 2008 Oct22:25x64
Mscorlib.resources.dll2.0.50727.3053352,25615 Sep 200822:26x86
Mscorlib.resources.dll2.0.50727.3053303,10415 Sep 200822:25x86
Mscorlib.resources.dll2.0.50727.3053299,00815 Sep 200822:26x86
Mscorlib.resources.dll2.0.50727.3053315,39227-ก.ค.-200818:02x86
Mscorlib.resources.dll2.0.50727.3053425,98415 Sep 200822:26x86
Mscorlib.resources.dll2.0.50727.3053307,20027-ก.ค.-200818:02x86
Mscorlib.resources.dll2.0.50727.3053299,00815 Sep 200822:26x86
Mscorlib.resources.dll2.0.50727.3053311,29627-ก.ค.-200818:02x86
Mscorlib.resources.dll2.0.50727.3053331,77615 Sep 200822:26x86
Mscorlib.resources.dll2.0.50727.3053315,39215 Sep 200822:25x86
Mscorlib.resources.dll2.0.50727.3053307,20027-ก.ค.-200817:56x86
Mscorlib.resources.dll2.0.50727.3053348,16027-ก.ค.-200818:02x86
Mscorlib.resources.dll2.0.50727.3053319,48827-ก.ค.-200817:56x86
Mscorlib.resources.dll2.0.50727.3053290,81615 Sep 200822:26x86
Mscorlib.resources.dll2.0.50727.3053303,10415 Sep 200822:25x86
Mscorlib.resources.dll2.0.50727.3053311,29615 Sep 200822:25x86
Mscorlib.resources.dll2.0.50727.3053303,10427-ก.ค.-200817:56x86
Mscorlib.resources.dll2.0.50727.3053307,20015 Sep 200822:25x86
Mscorlib.resources.dll2.0.50727.1434397,31211 2008 แจ22:59x86
Mscorlib.resources.dll2.0.50727.3053299,00815 Sep 200822:25x86
Mscorlib.resources.dll2.0.50727.3053299,00815 Sep 200822:25x86
Mscorlib.resources.dll2.0.50727.3053278,52827-ก.ค.-200817:56x86
Mscorlib.resources.dll2.0.50727.3053278,52827-ก.ค.-200817:56x86
Big5.nlpไม่สามารถใช้งานได้66,72818 2007 ธ.ค.21:03ไม่สามารถใช้งานได้
Bopomofo.nlpไม่สามารถใช้งานได้82,17218 2007 ธ.ค.21:03ไม่สามารถใช้งานได้
Ksc.nlpไม่สามารถใช้งานได้116,75618 2007 ธ.ค.21:04ไม่สามารถใช้งานได้
Mscorlib.dll2.0.50727.30684,546,56001 2008 Oct22:27x86
Normidna.nlpไม่สามารถใช้งานได้59,34218 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Normnfc.nlpไม่สามารถใช้งานได้45,79418 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Normnfd.nlpไม่สามารถใช้งานได้39,28418 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Normnfkc.nlpไม่สามารถใช้งานได้66,38418 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Normnfkd.nlpไม่สามารถใช้งานได้60,29418 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Prc.nlpไม่สามารถใช้งานได้83,74818 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Prcp.nlpไม่สามารถใช้งานได้83,74818 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Sortkey.nlpไม่สามารถใช้งานได้262,14818 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Sorttbls.nlpไม่สามารถใช้งานได้20,32018 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Xjis.nlpไม่สามารถใช้งานได้28,28818 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Mscordacwks.dll2.0.50727.3068992,26401 2008 Oct22:27x86
Mscorjit.dll2.0.50727.3068367,10424 Sep 200822:21x86
Mscorwks.dll2.0.50727.30685,815,80801 2008 Oct22:27x86
windows Vista SP1 และ Windows Server 2008 เวอร์ชัน IA 64
ยุบตารางนี้ขยายตารางนี้
ชื่อแฟ้มรุ่นของแฟ้มขนาดแฟ้มวันที่เวลาแพลทฟอร์ม
Big5.nlpไม่สามารถใช้งานได้66,72818 2007 ธ.ค.21:06ไม่สามารถใช้งานได้
Bopomofo.nlpไม่สามารถใช้งานได้82,17218 2007 ธ.ค.21:06ไม่สามารถใช้งานได้
Ksc.nlpไม่สามารถใช้งานได้116,75618 2007 ธ.ค.21:06ไม่สามารถใช้งานได้
Mscorlib.dll2.0.50727.30684,005,88801 2008 Oct22:26IA-64
Normidna.nlpไม่สามารถใช้งานได้59,34218 2007 ธ.ค.21:08ไม่สามารถใช้งานได้
Normnfc.nlpไม่สามารถใช้งานได้45,79418 2007 ธ.ค.21:08ไม่สามารถใช้งานได้
Normnfd.nlpไม่สามารถใช้งานได้39,28418 2007 ธ.ค.21:08ไม่สามารถใช้งานได้
Normnfkc.nlpไม่สามารถใช้งานได้66,38418 2007 ธ.ค.21:08ไม่สามารถใช้งานได้
Normnfkd.nlpไม่สามารถใช้งานได้60,29418 2007 ธ.ค.21:08ไม่สามารถใช้งานได้
Prc.nlpไม่สามารถใช้งานได้83,74818 2007 ธ.ค.21:08ไม่สามารถใช้งานได้
Prcp.nlpไม่สามารถใช้งานได้83,74818 2007 ธ.ค.21:08ไม่สามารถใช้งานได้
Sortkey.nlpไม่สามารถใช้งานได้262,14818 2007 ธ.ค.21:08ไม่สามารถใช้งานได้
Sorttbls.nlpไม่สามารถใช้งานได้20,32018 2007 ธ.ค.21:08ไม่สามารถใช้งานได้
Xjis.nlpไม่สามารถใช้งานได้28,28818 2007 ธ.ค.21:08ไม่สามารถใช้งานได้
Mscordacwks.dll2.0.50727.30683,087,88001 2008 Oct22:26IA-64
Mscorjit.dll2.0.50727.30682,560,51224 Sep 200823:14IA-64
Mscorwks.dll2.0.50727.306820,153,85601 2008 Oct22:26IA-64
Mscorlib.resources.dll2.0.50727.3053315,39227-ก.ค.-200817:58x86
Mscorlib.resources.dll2.0.50727.3053311,29627-ก.ค.-200817:58x86
Mscorlib.resources.dll2.0.50727.3053348,16027-ก.ค.-200817:58x86
Mscorlib.resources.dll2.0.50727.3053319,48827-ก.ค.-200817:58x86
Mscorlib.resources.dll2.0.50727.3053278,52827-ก.ค.-200817:58x86
Mscorlib.resources.dll2.0.50727.3053278,52827-ก.ค.-200817:59x86
Big5.nlpไม่สามารถใช้งานได้66,72818 2007 ธ.ค.21:03ไม่สามารถใช้งานได้
Bopomofo.nlpไม่สามารถใช้งานได้82,17218 2007 ธ.ค.21:03ไม่สามารถใช้งานได้
Ksc.nlpไม่สามารถใช้งานได้116,75618 2007 ธ.ค.21:04ไม่สามารถใช้งานได้
Mscorlib.dll2.0.50727.30684,546,56001 2008 Oct22:27x86
Normidna.nlpไม่สามารถใช้งานได้59,34218 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Normnfc.nlpไม่สามารถใช้งานได้45,79418 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Normnfd.nlpไม่สามารถใช้งานได้39,28418 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Normnfkc.nlpไม่สามารถใช้งานได้66,38418 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Normnfkd.nlpไม่สามารถใช้งานได้60,29418 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Prc.nlpไม่สามารถใช้งานได้83,74818 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Prcp.nlpไม่สามารถใช้งานได้83,74818 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Sortkey.nlpไม่สามารถใช้งานได้262,14818 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Sorttbls.nlpไม่สามารถใช้งานได้20,32018 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Xjis.nlpไม่สามารถใช้งานได้28,28818 2007 ธ.ค.21:05ไม่สามารถใช้งานได้
Mscordacwks.dll2.0.50727.3068992,26401 2008 Oct22:27x86
Mscorjit.dll2.0.50727.3068367,10424 Sep 200822:21x86
Mscorwks.dll2.0.50727.30685,815,80801 2008 Oct22:27x86

การหลีกเลี่ยงปัญหา

เมื่อต้องการแก้ไขปัญหานี้ ให้ใช้วิธีการอย่างใดอย่างหนึ่งต่อไปนี้

วิธีที่ 1:

ถ้ารหัสแอพลิเคชันมีลักษณะอย่างรหัสในส่วน "ข้อมูลเพิ่มเติม" ค้นหาบรรทัดของรหัสต่อไปนี้
#define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d).m_x))
เปลี่ยนรหัสในบรรทัดนี้เป็นดังนี้
#define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d)))

วิธีที่ 2

การจัดวางในแฟ้ม.ini เมื่อต้องการทำเช่นนี้ สร้างแฟ้มที่ประกอบด้วยรหัสต่อไปนี้
[.NET Framework Debugging Control]
AllowOptimize=0
ตั้งชื่อแฟ้ม.ini เหมือนกับโมดูลปัญหา แต่ใช้ส่วนขยาย.ini แทนการใช้นามสกุล.dll ตัวอย่างเช่น สำหรับโค้ดตัวอย่างในส่วน "ข้อมูลเพิ่มเติม" ชื่อแฟ้ม.ini Bug.ini แฟ้ม ย้ายแฟ้ม Bug.ini ในไดเรกทอรีเดียวกันเป็นแฟ้ม Bug.dll

หมายเหตุ:drawback ของวิธีนี้มีผลประสิทธิภาพที่อาจเกิดขึ้นสำหรับ optimizations ไม่มี ถ้าคุณใช้ตัวสร้าง Native ของรูป (Ngen.exe) precompile โมดูล วิธีการนี้ไม่สามารถใช้

วิธีที่ 3

เลือกใช้นั้นNoOptimizationตัวเลือกของการMethodImplOptionsระบุถึงวิธีการปัญหาโดยใช้การMethodImplAttributeคลาสที่

หมายเหตุ:วิธีนี้ปิดใช้งาน optimizations สำหรับคอมไพเลอร์ JIT และตัวที่ Native รูปสร้าง (Ngen.exe) บนระดับสำหรับแต่ละวิธี แตกต่างกันจำนวนประสิทธิภาพการทำงานที่ได้รับผลกระทบไป ขึ้นอยู่กับวิธีการ

สถานะ

Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "การใช้งาน"

ข้อมูลเพิ่มเติม

ขั้นตอนในการทบทวนการเกิดปัญหา

  1. สร้างโปรแกรมประยุกต์ c ++ที่ใช้.NET Framework 3.5 SP1
  2. เพิ่มแฟ้ม.cpp กับโครงการ ชื่อแฟ้มนี้แฟ้ม Bug.cpp และวางรหัสต่อไปนี้ในแฟ้ม Bug.cpp
    #using <mscorlib.dll>
    #include <stdlib.h>
    class AcGeVector3d
    {
    double x, y, z;
    public:
    __forceinline AcGeVector3d(const AcGeVector3d& src): x(src.x),y(src.y),z(src.z)
    {
    }
    __forceinline AcGeVector3d(double xx, double yy, double zz) : x(xx),y(yy),z(zz)
    {
    }
    __forceinline AcGeVector3d operator / (double val) const
    {
    return AcGeVector3d (x/val, y/val, z/val);
    }
    };
    #define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d).m_x)))
    namespace Geometry
    {
    [System::Runtime::InteropServices::StructLayout(System::Runtime::InteropServices::LayoutKind::Sequential)]
    public value class Vector3d
    {
    internal:
    double m_x, m_y, m_z;
    Vector3d(const AcGeVector3d* obj)
    {
    GETVECTOR3D(*this) = *obj;
    }
    public:
    Vector3d(double x, double y, double z):m_x(x),m_y(y), m_z(z) {}
    Vector3d DivideBy(double value)
    {
    return Vector3d(&GETVECTOR3D(*this).operator /(value));
    }
    virtual System::String^ ToString() override
    {
    return System::String::Format("{0}, {1}, {2}", m_x, m_y, m_z);
    }
    };
    }
    
  3. การคอมไพล์แฟ้ม Bug.cpp เรียกใช้คำสั่งต่อไปนี้:
    cl /clr /GL /O2 bug.cpp /link /dll /out:bug.dll
  4. สร้างใหม่ Microsoft Visual c# โครงการจะใช้เป็นโครงการไคลเอ็นต์
  5. ชื่อแฟ้มรหัสแฟ้ม Test.cs และวางรหัสต่อไปนี้ในแฟ้ม Test.cs
    using Geometry;
    namespace Test
    {
    class Tester
    {
    static void Main()
    {
    Vector3d v = new Vector3d(200, 200, 0);
    v = v.DivideBy(150);
    System.Console.WriteLine("{0}", v);
    }
    }
    }
    
  6. การคอมไพล์แฟ้ม Test.cs เรียกใช้คำสั่งต่อไปนี้:
    csc /r:bug.dll test.cs
  7. เมื่อต้องการฝังรายการลงในแฟ้ม Test.exe เรียกใช้คำสั่งต่อไปนี้:
    mt.exe - outputresource:test.exe;1 nologo - bug.dll.manifest รายการ-
  8. เรียกใช้แฟ้ม Test.exe
ขอให้สังเกตว่า ผลลัพธ์ที่แท้จริงจะเป็นดังนี้:
1.33333333333333, 1.333333333333, 0
อย่างไรก็ตาม ผลลัพธ์ที่คาดว่าจะเป็นดังนี้:
1.33333333333333, 0, 0

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำศัพท์ของการปรับปรุงซอฟต์แวร์ ให้คลิกหมายเลขบทความต่อไปนี้ เพื่อดูบทความใน Microsoft Knowledge Base::
824684คำอธิบายของคำศัพท์มาตรฐานที่ใช้เพื่ออธิบายปรับปรุงซอฟต์แวร์ของ Microsoft
Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use for other considerations.

คุณสมบัติ

หมายเลขบทความ (Article ID): 957542 - รีวิวครั้งสุดท้าย: 16 มกราคม 2554 - Revision: 4.0
ใช้กับ
  • Microsoft .NET Framework 3.5 Service Pack 1
Keywords: 
kbexpertiseadvanced kbfix kbqfe kbmt KB957542 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:957542

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com