Applies ToWindows Embedded Compact 7

Einführung

Dieser Artikel beschreibt ein Problem, bei dem eineAusnahme tritt auf, wenn mehrere Threads gleichzeitig Windows Embedded Compact 7 C zur Laufzeit "Atexit"-Funktion aufrufen. Ein Update ist verfügbar, um dieses Problem zu beheben. Bevor Sie dieses Update installieren, müssen alle zuvor veröffentlichten Updates für dieses Produkt installiert.

Problembeschreibung

Wenn mehrere Threads gleichzeitig Windows Embedded Compact 7 C Run-Time Atexit -Funktion aufrufen, kann eine Ausnahme auftreten. Die Ausnahme tritt auf, wenn der Atexit -Funktion aufrufende Code nicht serialisiert Atexit -Funktion vom Compiler eingefügt wird.

Ursache

Das Problem tritt auf, da C Run Time Atexit -Funktion nicht threadsicher ist. Daher ist die Speichertabelle, die die Funktion beschädigt.

Problemlösung

Informationen zu Softwareupdates

Ein unterstütztes Softwareupdate ist inzwischen von Microsoft als Windows Embedded Compact 7 monatliches Update (Juni 2017).

Hinweis Dieses Windows Embedded Compact 7 monatliche Update ist auf der folgenden Microsoft Download Center-Website zum Download zur Verfügung:

Windows Embedded Compact 7 Updates

Voraussetzungen

Dieses Update wird nur unterstützt, wenn alle zuvor veröffentlichten Updates für dieses Produkt ebenfalls installiert wurden.

Neustartanforderung

Nach der Installation dieses Updates müssen Sie die gesamte Plattform neu erstellen. Verwenden Sie hierzu eine der folgenden Methoden:

  • Im Menü Erstellen auf Projektmappe bereinigenund dann auf Projektmappe erstellen.

  • Klicken Sie im Menü Erstellen auf Projektmappe neu erstellen.

Sie müssen keinen Neustart des Computers, nachdem Sie dieses Update anwenden.

Ersetzte Updates

Dieses Update ersetzt keine anderen Updates.

Dateiinformationen

Eine vollständige Wave-Version ist. Fast alle Binärdateien sind dieser Version betroffen.

Die folgenden Quelldateien werden diese Version betroffen::

private\winceos\COREOS\core\corelibc\crtw32\startup\cexit.cpp private\winceos\COREOS\core\corelibc\crtw32\startup\onexit.c

Weitere Informationen

In einer Multithreadumgebung sein Tabellen Funktion Atexit durch Atexit rufen nicht Thread-Sicherheit beschädigt. Dies kann zu Speicher und Ausnahmen führen. Atexit -Funktion wird sich eine Routine, die ausgeführt wird, wenn das Programm beendet wird oder eine DLL entladen verwendet. Fehler in Threadsicherheit könnte Änderung dieser Exit-Routine und beschädigte Tabellen Funktion beenden.

Referenzen

Erfahren Sie mehr über die Terminologie, mit der Microsoft Softwareupdates beschrieben werden.

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.