Úvod

Tento článek popisuje problém, ve kterémdojde k výjimce n, když více vláken volání funkce C Runtime "atexit" současně v systému Windows Embedded Compact 7. Pro řešení tohoto problému je k dispozici aktualizace. Před instalací této aktualizace musí být všechny předchozí aktualizace vydané pro tento produkt nainstalován.

Příznaky

Při více podprocesů volání funkce C Runtime atexit současně v systému Windows Embedded Compact 7, může dojít k výjimce. Kód, který volá funkci atexit není serializovat nebo atexit funkce je vložen kompilátor dojde k výjimce.

Příčina

K problému dochází, protože funkce atexit čas spuštění C není bezpečné podprocesu. Proto je poškozen paměti tabulku, která používá funkci.

Řešení

Informace o aktualizaci softwaru

Podporovanou aktualizaci softwaru je nyní k dispozici od společnosti Microsoft jako Windows Embedded Compact 7 Monthly Update (červen 2017).

Poznámka: Windows Embedded Compact 7 měsíční aktualizaci lze stáhnout z následujícího webu Microsoft Download Center:

Systém Windows Embedded Compact 7 aktualizace

Předpoklady

Tato aktualizace je podporována pouze v případě, že byly nainstalovány i všechny předchozí aktualizace vydané pro tento produkt.

Požadavek na restartování

Po instalaci této aktualizace nutné provést čisté sestavení celé platformy. Chcete-li to provést, použijte jednu z následujících metod:

  • V nabídce sestavení klepněte na tlačítko Vyčistit řešenía pak klepněte na tlačítko Sestavit řešení.

  • V nabídce sestavení klikněte na tlačítko Znovu sestavit řešení.

Nemáte k restartování počítače po instalaci této aktualizace softwaru.

Informace o nahrazení aktualizace

Tato aktualizace nenahrazuje žádné jiné aktualizace.

Informace o souborech

Je to úplná vlna uvolnění. Téměř všechny binární soubory jsou ovlivněny toto vydání.

Následující zdrojové soubory jsou ovlivněny toto vydání::

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

Další informace

V prostředí s více vlákny může být poškozen jiným voláním atexit atexit funkce tabulek z jiných vláken. To může vést k poškození paměti a výjimky. Funkce atexit používá k registraci rutiny, která bude provedena při ukončí program nebo uvolnění knihovny DLL. Chyba v bezpečnostní vlákno mohlo způsobit změnu tohoto ukončení rutiny a poškození tabulky funkce exit.

Odkazy

Další informace o terminologii , kterou společnost Microsoft používá k popisu aktualizací softwaru.

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.