Artikel ini menjelaskan masalah di mana SEH pengecualian ditangkap oleh penangan salah di Windows Embedded ringkas 2013. Pemutakhiran tersedia untuk memperbaiki masalah ini. Sebelum Anda menginstal pembaruan ini, Semua pembaruan sebelumnya diterbitkan untuk produk ini harus diinstal.
Gejala
Pertimbangkan skenario berikut ini:
-
Anda menggunakan aplikasi pembuat plug-in untuk Visual Studio 2013 untuk membuat C++ aplikasi yang mentargetkan Windows Embedded ringkas 2013.
-
Anda mengaktifkan asinkron pengecualian penanganan menggunakan switch compiler "/EHa". Switch ini memungkinkan kedua C++ sinkron dan terstruktur pengecualian penanganan (SEH) asinkron pengecualian penanganan metode untuk campuran dalam kode yang sama.
-
Anda menjalankan kode yang terkait untuk menangkap pengecualian SEH.
Dalam skenario ini, SEH pengecualian selalu terperangkap dalam penanganan pengecualian pertama meskipun penyaringan untuk pengecualian sinkron C++.
Perilaku yang diharapkan adalah pengecualian SEH ditangkap oleh penangan pengecualian elipsis. Misalnya, Anda menjalankan kode contoh berikut: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"); } } Dalam contoh ini, Anda selalu tekan klausa menangkap pertama ketika terjadi pengecualian SEH (bilangan bulat dibagi dengan nol) bukannya pengendali elipsis seperti yang diharapkan.Pemecahan masalah
Informasi pemutakhiran perangkat lunak
Windows tertanam ringkas 2013 bulanan Update (September 2015) sekarang tersedia dari Microsoft. Untuk men-download pembaruan bulanan Windows Embedded ringkas 2013, pergi ke Microsoft OEM Online atau MyOEM.
Prasyarat
Pemutakhiran ini didukung hanya jika semua pembaruan sebelumnya diterbitkan untuk produk ini juga telah diinstal.
Persyaratan menghidupkan ulang
Setelah Anda menerapkan pembaruan ini, Anda harus melakukan pembuatan bersih platform keseluruhan. Untuk melakukannya, gunakan salah satu dari metode berikut ini:
-
Membangun menu, pilih Solusi bersih, dan kemudian pilih Membangun solusi.
-
Membangun menu, pilih Solusi membangun kembali.
Anda tidak harus me-restart komputer setelah Anda menerapkan pembaruan perangkat lunak.
Informasi penggantian pemutakhiran
Pembaruan ini tidak menggantikan pembaruan lainnya.
Versi bahasa Inggris paket pembaruan perangkat lunak ini memiliki atribut berkas (atau atribut berkas yang lebih baru) yang tercantum dalam tabel berikut. Tanggal dan waktu untuk berkas-berkas tersebut dicantumkan dalam Waktu Universal Terkoordinasi (UTC). Ketika Anda melihat informasi berkas, akan diubah ke waktu lokal. Untuk menemukan perbedaan antara waktu UTC dan waktu lokal, gunakan tab zona waktu di item tanggal dan waktu di Panel kontrol.
Berkas yang disertakan dalam paket pemutakhiran ini
Nama file |
Ukuran file |
Tanggal |
Waktu |
Jalur |
---|---|---|---|---|
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 |
Referensi
Pelajari tentang terminologi yang digunakan untuk menjelaskan pemutakhiran perangkat lunak Microsoft.