U ovom se članku opisuje problem u kojem pogrešan rukovatelj u sustavu Windows Embedded Compact 2013 prepoznaje SEH iznimke. Dostupno je ažuriranje koje rješava taj problem. Prije nego što instalirate ovo ažuriranje, sva prethodno izdana ažuriranja za proizvod moraju biti instalirana.
Simptomi
Razmotrite sljedeći scenarij:
- Pomoću programskog priključka Sastavljač aplikacija za Visual Studio 2013 stvorite aplikaciju u obliku C++ koja cilja na Windows Embedded Compact 2013.
- Rukovanje asinkronim iznimkama omogućuje se pomoću prekidača kompilatora "/EHa". Ovaj prekidač omogućuje miješanje metoda rukovanja sinronim iznimkama za C++ i strukturirano rukovanje iznimkama (SEH) u isti kod.
- Pokrećete povezani kod da biste uhvatili SEH iznimke.
U tom se scenariju SEH iznimke uvijek uhvaćaju u prvom rukovatelju iznimaka, čak i ako je filtriran za sinkronu iznimku C++.
Očekivano ponašanje je da rukovatelj iznimkama trotočja uhvati SEH iznimke.
Na primjer, izvršavate sljedeći ogledni kod:class CMyEx
{
Javno:
CMyEx(int nParam) : m_nParam(nParam) { }
int m_nParam;
};
poništi TestExceptions()
{
isprobati;pokušati
{
int a = 42;
int b = 0;
baci CMyEx(1);
baci 97;
int c = a / b;
}
hvatanje (konst CMyEx &e)
{
wprintf(L"CMyEx exception caught (param=%d)!\n", e.m_nParam);
}
Ulov (...)
{
wprintf(L"Exception of unspecified type caught by ellipsis clause!\n");
}
} U ovom primjeru uvijek pogađate prvi uvjet catcha kada se pojavi SEH iznimka (dijeljenje cijelog broja s nulom) umjesto rukovatelja trotočjem kao što je očekivano.
Rješenje
Informacije o softverskim ažuriranjima
Mjesečno ažuriranje za Windows Embedded Compact 2013 (rujan 2015.) sada je dostupno od Microsofta. Da biste preuzeli ovo mjesečno ažuriranje za Windows Embedded Compact 2013, posjetite Microsoft OEM Online ili MyOEM.
Preduvjeti
Ovo je ažuriranje podržano samo ako su instalirana sva prethodno izdana ažuriranja za ovaj proizvod.
Potrebno je ponovno pokretanje
Kada primijenite ovo ažuriranje, morate izvesti čistu međuverziju cijele platforme. To učinite na jedan od sljedećih načina:
- Na izborniku Međuverzija odaberite Očisti rješenje, a zatim odaberite Međuverzija rješenja.
- Na izborniku Međuverzija odaberite Obnovi rješenje.
Ne morate ponovno pokrenuti računalo nakon primjene ovog ažuriranja softvera.
Informacije o zamjeni ažuriranja
Ovo ažuriranje ne zamjenjuje nijedno drugo ažuriranje.
Podaci o datoteci
Engleska verzija ovog paketa softverskih ažuriranja ima atribute datoteka (ili novije atribute datoteka) koji su navedeni u sljedećoj tablici. Datumi i vremena tih datoteka navedeni su u koordiniranom univerzalnom vremenu (UTC). Kada pregledavate informacije o datoteci, pretvaraju se u lokalno vrijeme. Da biste pronašli razliku između UTC-a i lokalnog vremena, koristite karticu Vremenska zona u stavci Datum i vrijeme na Upravljačka ploča.
Files koje su obuhvaćene ovim paketom ažuriranja
| Naziv datoteke | Veličina datoteke | Datum | Vrijeme | Put |
|---|---|---|---|---|
| Frame.cpp | 34,133 | 13. studenog 2014. | 23:06 | Private\Winceos\Coreos\Core\Corelibc\Crtw32\Eh |
| Fullcrt.lib | 30,027,378 | 09-ruj-2015 | 09:17 | Public\Common\Oak\Lib\X86\Checked |
| Fullcrt.lib | 30,228,292 | 09-ruj-2015 | 09:17 | Public\Common\Oak\Lib\X86\Retail |
| Fullcrt.lib | 28,759,836 | 09-ruj-2015 | 09:16 | Public\Common\Oak\Lib\X86\Debug |
| Fullcrt.lib | 29,278,300 | 09-ruj-2015 | 09:17 | Public\Common\Oak\Lib\Armv7\Checked |
| Fullcrt.lib | 29,566,730 | 09-ruj-2015 | 09:17 | Public\Common\Oak\Lib\Armv7\Retail |
| Fullcrt.lib | 33,139,560 | 09-ruj-2015 | 09:16 | Public\Common\Oak\Lib\Armv7\Debug |
| Msvcr110d.dll | 1,339,952 | 08-ruj-2015 | 05:26 | Public\Common\Sdk\Crt\Bin\X86 |
| Msvcr110.dll | 754,224 | 08-ruj-2015 | 05:26 | Public\Common\Sdk\Crt\Bin\X86 |
| Msvcr110d.map | 1,287,579 | 08-ruj-2015 | 05:26 | Public\Common\Sdk\Crt\Bin\X86 |
| Msvcr110d.rel | 528,834 | 08-ruj-2015 | 05:26 | Public\Common\Sdk\Crt\Bin\X86 |
| Msvcr110.map | 788,986 | 08-ruj-2015 | 05:26 | Public\Common\Sdk\Crt\Bin\X86 |
| Msvcr110.rel | 242,169 | 08-ruj-2015 | 05:26 | Public\Common\Sdk\Crt\Bin\X86 |
| Msvcr110d.dll | 1,145,312 | 08-ruj-2015 | 05:26 | Public\Common\Sdk\Crt\Bin\Arm |
| Msvcr110.dll | 539,608 | 08-ruj-2015 | 05:26 | Public\Common\Sdk\Crt\Bin\Arm |
| Msvcr110d.map | 2,714,275 | 08-ruj-2015 | 05:26 | Public\Common\Sdk\Crt\Bin\Arm |
| Msvcr110d.rel | 215,924 | 08-ruj-2015 | 05:26 | Public\Common\Sdk\Crt\Bin\Arm |
| Msvcr110.map | 1,258,317 | 08-ruj-2015 | 05:26 | Public\Common\Sdk\Crt\Bin\Arm |
| Msvcr110.rel | 122,167 | 08-ruj-2015 | 05:26 | Public\Common\Sdk\Crt\Bin\Arm |
Reference
Saznajte više o terminologiji koju Microsoft upotrebljava za opisivanje softverskih ažuriranja.