บทความนี้อธิบายถึงปัญหาใน SEH ที่ตรวจพบข้อยกเว้น โดยตัวจัดการไม่ถูกต้องใน Windows 2013 กระชับข้อมูลฝังตัว การปรับปรุงจะพร้อมใช้งานเมื่อต้องการแก้ไขปัญหานี้ ก่อนที่คุณติดตั้งโปรแกรมปรับปรุงนี้ โปรแกรมปรับปรุงที่ออกใช้ก่อนหน้านี้ทั้งหมดสำหรับผลิตภัณฑ์นี้ต้องถูกติดตั้ง
อาการ
พิจารณาสถานการณ์สมมติต่อไปนี้:
-
คุณสามารถใช้ตัวสร้างแอพลิเคชันปลั๊กอิน 2013 Studio Visual เมื่อต้องการสร้างโปรแกรมประยุกต์ c ++ที่เป้าหมาย Windows 2013 กระชับข้อมูลฝังตัว
-
คุณเปิดใช้งานข้อยกเว้นแบบอะซิงโครนัสการจัดการ โดยใช้สวิตช์คอมไพเลอร์ "/EHa" สวิตช์นี้ช่วยให้ทั้ง c ++มีโครงสร้าง และแบบซิงโครนัสการจัดการข้อยกเว้น (SEH) วิธีการผสมผสานกันในรหัสเดียวกันในการจัดการข้อยกเว้นแบบอะซิงโครนัส
-
คุณเรียกใช้รหัสที่เกี่ยวข้องสามารถตรวจจับข้อยกเว้นของ SEH
ในสถานการณ์สมมตินี้ ข้อยกเว้นของ SEH ใจเสมอตรวจพบในตัวจัดการข้อยกเว้นแรกแม้ว่าจะมีการกรองข้อมูลสำหรับข้อยกเว้นแบบซิงโครนัส c ++
ลักษณะการทำงานที่คาดไว้คือ SEH ข้อยกเว้นที่ถูกตรวจพบ โดยตัวจัดการข้อยกเว้นของจุดไข่ปลา ตัวอย่างเช่น คุณเรียกใช้ตัวอย่างรหัสต่อไปนี้:class CMyEx{ public: CMyEx(int nParam) : m_nParam(nParam) { } int m_nParam; }; void TestExceptions() { try { int a = 42; int b = 0; // throw CMyEx(1); // throw 97; int c = a / b; } catch (const CMyEx &e) { wprintf(L"CMyEx exception caught (param=%d)!\n", e.m_nParam); } catch (...) { wprintf(L"Exception of unspecified type caught by ellipsis clause!\n"); } } ในตัวอย่างนี้ คุณเสมอรข้อมูลส่วนคำสั่ง catch แรกเมื่อเกิดขึ้น SEH ข้อยกเว้น (หารจำนวนเต็ม ด้วยศูนย์) แทนที่เป็นตัวจัดการจุดไข่ปลาตามที่คาดไว้การแก้ปัญหา
ข้อมูลการปรับปรุงซอฟต์แวร์
ขณะนี้พร้อมใช้งานจาก Microsoft Windows ฝังตัวกระชับ 2013 รายเดือน Update (2015 กันยายน) ได้ เมื่อต้องการดาวน์โหลดการปรับปรุงรายเดือนนี้ Windows 2013 กระชับข้อมูลฝังตัว ไปที่Microsoft OEM OnlineหรือMyOEM
ข้อกำหนดเบื้องต้น
โปรแกรมปรับปรุงนี้ได้รับการสนับสนุนเฉพาะเมื่อมีการติดตั้งโปรแกรมปรับปรุงที่ออกใช้ก่อนหน้านี้ทั้งหมดสำหรับผลิตภัณฑ์นี้นอกจากนี้
ข้อกำหนดการรีสตาร์ท
หลังจากที่คุณใช้โปรแกรมปรับปรุงนี้ คุณต้องดำเนินการเป็นแพลตฟอร์มทั้งรุ่นใหม่ทั้งหมด เมื่อต้องการทำเช่นนี้ ใช้หนึ่งในวิธีต่อไปนี้:
-
บนเมนูสร้างเลือกโซลูชันใหม่ทั้งหมดจากนั้นสร้างโซลูชัน
-
บนเมนูสร้างเลือกโซลูชันที่สร้างใหม่
คุณไม่จำเป็นต้องรีสตาร์ทเครื่องคอมพิวเตอร์หลังจากใช้การปรับปรุงซอฟต์แวร์นี้
ข้อมูลการแทนที่การปรับปรุง
โปรแกรมปรับปรุงนี้ไม่แทนโปรแกรมปรับปรุงอื่น ๆ
แพคเกจโปรแกรมปรับปรุงซอฟต์แวร์นี้รุ่นภาษาอังกฤษมีแอตทริบิวต์ของแฟ้ม (หรือแอตทริบิวต์ของแฟ้มที่ใหม่กว่า) ซึ่งแสดงอยู่ในตารางต่อไปนี้ วันที่และเวลาสำหรับแฟ้มเหล่านี้จะแสดงรายการไว้ในรูปแบบเวลามาตรฐานสากล (UTC) เมื่อคุณดูข้อมูลแฟ้ม จะถูกแปลงเป็นเวลาท้องถิ่น เมื่อต้องการค้นหาความแตกต่างระหว่างเวลา UTC กับเวลาท้องถิ่น ใช้แท็บโซนเวลาในรายการวันและเวลา'ใน'แผงควบคุม'
แฟ้มที่รวมอยู่ในแพคเกจโปรแกรมปรับปรุงนี้
ชื่อแฟ้ม |
ขนาดของแฟ้ม |
วันที่ |
เวลา |
เส้นทาง |
---|---|---|---|---|
Frame.cpp |
34,133 |
13-Nov-2014 |
23:06 |
Private\Winceos\Coreos\Core\Corelibc\Crtw32\Eh |
Fullcrt.lib |
30,027,378 |
09-Sep-2015 |
09:17 |
Public\Common\Oak\Lib\X86\Checked |
Fullcrt.lib |
30,228,292 |
09-Sep-2015 |
09:17 |
Public\Common\Oak\Lib\X86\Retail |
Fullcrt.lib |
28,759,836 |
09-Sep-2015 |
09:16 |
Public\Common\Oak\Lib\X86\Debug |
Fullcrt.lib |
29,278,300 |
09-Sep-2015 |
09:17 |
Public\Common\Oak\Lib\Armv7\Checked |
Fullcrt.lib |
29,566,730 |
09-Sep-2015 |
09:17 |
Public\Common\Oak\Lib\Armv7\Retail |
Fullcrt.lib |
33,139,560 |
09-Sep-2015 |
09:16 |
Public\Common\Oak\Lib\Armv7\Debug |
Msvcr110d.dll |
1,339,952 |
08-Sep-2015 |
05:26 |
Public\Common\Sdk\Crt\Bin\X86 |
Msvcr110.dll |
754,224 |
08-Sep-2015 |
05:26 |
Public\Common\Sdk\Crt\Bin\X86 |
Msvcr110d.map |
1,287,579 |
08-Sep-2015 |
05:26 |
Public\Common\Sdk\Crt\Bin\X86 |
Msvcr110d.rel |
528,834 |
08-Sep-2015 |
05:26 |
Public\Common\Sdk\Crt\Bin\X86 |
Msvcr110.map |
788,986 |
08-Sep-2015 |
05:26 |
Public\Common\Sdk\Crt\Bin\X86 |
Msvcr110.rel |
242,169 |
08-Sep-2015 |
05:26 |
Public\Common\Sdk\Crt\Bin\X86 |
Msvcr110d.dll |
1,145,312 |
08-Sep-2015 |
05:26 |
Public\Common\Sdk\Crt\Bin\Arm |
Msvcr110.dll |
539,608 |
08-Sep-2015 |
05:26 |
Public\Common\Sdk\Crt\Bin\Arm |
Msvcr110d.map |
2,714,275 |
08-Sep-2015 |
05:26 |
Public\Common\Sdk\Crt\Bin\Arm |
Msvcr110d.rel |
215,924 |
08-Sep-2015 |
05:26 |
Public\Common\Sdk\Crt\Bin\Arm |
Msvcr110.map |
1,258,317 |
08-Sep-2015 |
05:26 |
Public\Common\Sdk\Crt\Bin\Arm |
Msvcr110.rel |
122,167 |
08-Sep-2015 |
05:26 |
Public\Common\Sdk\Crt\Bin\Arm |
ข้อมูลอ้างอิง
เรียนรู้เกี่ยวกับคำศัพท์เฉพาะทางที่ Microsoft ใช้เพื่ออธิบายปรับปรุงซอฟต์แวร์