V tem članku je opisana težava, pri kateri izjeme SEH prestreže napačen način obravnave v izdelku Windows Embedded Compact 2013. Na voljo je posodobitev za odpravo te težave. Preden namestite to posodobitev, morajo biti nameščene vse predhodno izdane posodobitve za ta izdelek.
Znaki
Oglejte si ta scenarij:
- Z vtičnikom Application Builder za Visual Studio 2013 lahko ustvarite aplikacijo v jeziku C++, ki cilja na Windows Embedded Compact 2013.
- Asinhrono obravnavanje izjem omogočite s stikalom prevajalnika »/EHa«. To stikalo omogoča, da se metode sinhronega obravnavanja izjem v C++ in strukturiranem obravnavanju izjem (SEH) mešajo v isto kodo.
- Povezano kodo zaženete, da zajamete izjeme SEH.
V tem scenariju so izjeme SEH vedno uhite v prvem orodju za obravnavo izjem, tudi če je ta filtriran za sinhrono izjemo C++.
Pričakovano vedenje je, da izjeme SEH zajame obravnava izjem treh pik.
Zaženite na primer to vzorčno kodo:razred CMyEx
{
Javno:
CMyEx(int nParam) : m_nParam(nParam) { }
int m_nParam;
};
void TestExceptions()
{
poskusite
{
int a = 42;
int b = 0;
vrzi CMyEx(1);
vrzi 97;
int c = a / b;
}
catch (const CMyEx &e)
{
wprintf(L"CMyEx izjema ujeta (param=%d)!\n", e.m_nParam);
}
ulov (...)
{
wprintf(L"Izjema nedoločene vrste, ujete s stavkom treh pik!\n");
}
} V tem vzorcu vedno zaženete prvi stavek catch, ko pride do izjeme SEH (deli celo število z nič) namesto rutine za obravnavo treh pik, kot je pričakovano.
Rešitev
Informacije o posodobitvi programske opreme
Mesečna posodobitev za Windows Embedded Compact 2013 (september 2015) je zdaj na voljo pri Microsoftu. Če želite prenesti to mesečno posodobitev za Windows Embedded Compact 2013, obiščite spletno mesto Microsoft OEM ali MyOEM.
Pogoji
Ta posodobitev je podprta le, če so bile nameščene tudi vse predhodno izdane posodobitve za ta izdelek.
Zahteve glede ponovnega zagona
Ko uporabite to posodobitev, morate izvesti čisto graditev celotne platforme. To naredite na enega od teh načinov:
- V meniju »Graditev « izberite »Počisti rešitev« in nato » Zgradi rešitev«.
- V meniju »Graditev « izberite »Obnovi rešitev«.
Ko uporabite to posodobitev programske opreme, vam ni treba znova zagnati računalnika.
Informacije o zamenjavi posodobitve
Ta posodobitev ne nadomesti nobenih drugih posodobitev.
Informacije o datotekah
Angleška različica tega paketa posodobitev programske opreme ima atribute datoteke (ali novejše atribute datoteke), ki so navedeni v tej tabeli. Datumi in ure za te datoteke so navedeni v usklajenem univerzalnem času (UTC). Ko si ogledate informacije o datoteki, se te pretvorijo v lokalni čas. Če želite poiskati razliko med UTC-jem in lokalnim časom, uporabite zavihek »Časovni pas« v elementu »Datum in ura« v nadzorna plošča.
Files, that are included in this update package
| Ime datoteke | Velikost datoteke | Datum | Čas | Pot |
|---|---|---|---|---|
| Frame.cpp | 34,133 | 13. novembra 2014 | 23:06 | Private\Winceos\Coreos\Core\Corelibc\Crtw32\Eh |
| Fullcrt.lib | 30,027,378 | 09. september 2015 | 09:17 | Public\Common\Oak\Lib\X86\Checked |
| Fullcrt.lib | 30,228,292 | 09. september 2015 | 09:17 | Public\Common\Oak\Lib\X86\Retail |
| Fullcrt.lib | 28,759,836 | 09. september 2015 | 09:16 | Public\Common\Oak\Lib\X86\Debug |
| Fullcrt.lib | 29,278,300 | 09. september 2015 | 09:17 | Public\Common\Oak\Lib\Armv7\Checked |
| Fullcrt.lib | 29,566,730 | 09. september 2015 | 09:17 | Public\Common\Oak\Lib\Armv7\Retail |
| Fullcrt.lib | 33,139,560 | 09. september 2015 | 09:16 | Public\Common\Oak\Lib\Armv7\Debug |
| Msvcr110d.dll | 1,339,952 | 8. september 2015 | 05:26 | Public\Common\Sdk\Crt\Bin\X86 |
| Msvcr110.dll | 754,224 | 8. september 2015 | 05:26 | Public\Common\Sdk\Crt\Bin\X86 |
| Msvcr110d.zemljevid | 1,287,579 | 08-Sep-2015 | 05:26 | Javno\Skupno\Sdk\Crt\Bin\X86 |
| Msvcr110d.rel | 528,834 | 08-Sep-2015 | 05:26 | Javno\Skupno\Sdk\Crt\Bin\X86 |
| Msvcr110.zemljevid | 788,986 | 08-Sep-2015 | 05:26 | Javno\Skupno\Sdk\Crt\Bin\X86 |
| Msvcr110.rel | 242,169 | 08-Sep-2015 | 05:26 | Javno\Skupno\Sdk\Crt\Bin\X86 |
| Msvcr110d.dll | 1,145,312 | 08-Sep-2015 | 05:26 | Javno\Skupno\Sdk\Crt\Bin\Arm |
| Msvcr110.dll | 539,608 | 08-Sep-2015 | 05:26 | Javno\Skupno\Sdk\Crt\Bin\Arm |
| Msvcr110d.zemljevid | 2,714,275 | 08-Sep-2015 | 05:26 | Javno\Skupno\Sdk\Crt\Bin\Arm |
| Msvcr110d.rel | 215,924 | 08-Sep-2015 | 05:26 | Javno\Skupno\Sdk\Crt\Bin\Arm |
| Msvcr110.zemljevid | 1,258,317 | 08-Sep-2015 | 05:26 | Javno\Skupno\Sdk\Crt\Bin\Arm |
| Msvcr110.rel | 122,167 | 08-Sep-2015 | 05:26 | Javno\Skupno\Sdk\Crt\Bin\Arm |
Sklici
Preberite več o terminologiji, ki jo Microsoft uporablja za opisovanje posodobitev programske opreme.