Labojums: SEH izņēmumi zvejo ar nepareizu izņēmumu apstrādes laikā asinhronā izņēmumu apstrāde ir iespējots WEC 2013

Šajā rakstā aprakstīta problēma, kuras SEH izņēmumi nozvejo nepareizi apdarinātājs Windows Embedded Compact 2013. Ir pieejams atjauninājums, lai atrisinātu šo problēmu. Pirms šī atjauninājuma instalēšanas ir jāinstalē visas iepriekš izsniegtās šo produktu atjauninājumus.

Pazīmes

Apsveriet šādu situāciju:

  • Spraudnis Visual Studio 2013 programmu veidotājs izmanto, lai izveidotu šo mērķi Windows Embedded Compact 2013 C++ lietojumprogrammu.

  • Iespējojiet asinhronā izņēmumu apstrāde, izmantojot slēdzi "/EHa" kompilators. Šis slēdzis ļauj gan C++ sinhrona un strukturēta izņēmumu apstrāde (SEH) asinhronā izņēmumu apstrādes metodes sajaukt vienu un to pašu kodu.

  • Varat palaist kodu saistītu catch SEH izņēmumi.

Šādā gadījumā SEH izņēmumi tie vienmēr noteikumi pirmo izņēmumu apdarinātājā pat tad, ja piemēroti C++ sinhrona izņēmums.

Paredzamā rīcība ir daudzpunkte izņēmumu apstrādes laikā piesaista SEH izņēmumi.

Piemēram, palaižot parauga kodu: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");
}
}
Šajā piemērā jūs vienmēr rezultāts pirmā loma klauzula, SEH (skaitlim dalīt ar nulli) Izņēmums nevis daudzpunktes apdarinātāju, kā paredzēts.

Risinājums

Informācija par programmatūras atjauninājumu

Pašlaik korporācija Microsoft Windows Embedded Compact 2013 ikmēneša atjauninājums (2015. gada septembris). Lai lejupielādētu Windows Embedded Compact 2013 ikmēneša atjauninājums, dodieties uz vai .

Priekšnosacījumi

Šis atjauninājums tiek atbalstīts tikai tad, ja ir instalēti arī visi iepriekš izsniegtie šī produkta atjauninājumi.

Restartēšanas nepieciešamība

Pēc šī atjauninājuma lietošanas ir jāveic tīrā izveidot visu platformu. Lai to izdarītu, izmantojiet kādu no šīm metodēm:

  • Veidot izvēlnē atlasiet Clean risinājumsun pēc tam atlasiet Izveidot risinājumu.

  • Veidot izvēlnē atlasiet Atjaunot risinājumu.

Jums nav pēc šī programmatūras atjauninājuma instalēšanas dators jārestartē.

Informācija par atjauninājumu aizstāšanu

Šis atjauninājums neaizstāj nekādus citus atjauninājumus.

Šī programmatūras atjauninājuma pakotnes versijai angļu valodā ir faila atribūti (vai jaunāki faila atribūti) Šajā tabulā sniegtie. Šo failu datumi un laiki ir norādīti atbilstoši universālajam koordinētajam laikam (UTC). Skatot faila informāciju, tā tiek pārvērsta atbilstoši vietējam laikam. Lai noskaidrotu atšķirību starp UTC un vietējo laiku, izmantojiet vadības paneļa vienuma datums un laiks cilni laika josla .

Šajā atjauninājumu pakotnē iekļautie faili

Faila nosaukums

Faila lielums

Datums

Laiks

Ceļš

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


Atsauces

Uzziniet par , kas tiek izmantota Microsoft programmatūras atjauninājumu aprakstos.

Vai nepieciešama papildu palīdzība?

Paplašiniet savas prasmes
Iepazīties ar apmācību
Esiet pirmais, kas saņem jaunās iespējas
Pievienoties Microsoft Insider

Vai šī informācija bija noderīga?

Paldies par jūsu atsauksmēm!

Paldies par atsauksmēm! Šķiet, ka jums varētu būt noderīgi sazināties ar kādu no mūsu Office atbalsta speciālistiem.

×