Въведение
Тази статия се описва проблем, при койтоn изключение се появява, когато много нишки повикване C средата "atexit" функция в същото време в Windows Embedded компактен 7. Налична е актуализация за да решите този проблем. Преди да инсталирате тази актуализация, трябва да се инсталира всички издадени преди това актуализации за този продукт.
Симптоми
Изключение може да възникне, когато много нишки обадя функцията C средата atexit едновременно с Windows Embedded компактен 7. Изключението възниква, когато код, което извиква функцията atexit не е поредица или когато функцията atexit от компилатор.
Причина
Проблемът възниква, защото функцията C изпълнение време atexit не е съвместими. Затова таблицата памет, която използва е повреден.
Решение
Информация за актуализация на софтуер
Като вграден Компактен 7 месечни актуализация на Windows (юни 2017) вече се предлага от Microsoft поддържана софтуерна актуализация.
Забележка: Windows Embedded компактен 7 месечни актуализацията е достъпен за изтегляне от следния уеб сайт на центъра за изтегляния на Microsoft:
Необходими условия:
Тази актуализация се поддържа само ако също са инсталирани всички издадени преди това актуализации за този продукт.
Изискване за рестартиране
След като приложите тази актуализация, трябва да извършите чисто компилация на цялата платформа. За тази цел използвайте един от следните методи:
-
Компилация меню щракнете върху Чисто решениеи изберете Компилация решение.
-
Изграждане на менюто щракнете върху Възстанови решение.
Не трябва да рестартирате компютъра, след като приложите тази актуализация на софтуера.
Информация за заместване на актуализация
Тази актуализация не замества никакви други актуализации.
Файлова информация
Тъй като това е пълна вълна съобщение. Почти всички файлове са засегнати от тази версия.
Следните изходни файлове са засегнати от тази версия::
private\winceos\COREOS\core\corelibc\crtw32\startup\cexit.cpp
private\winceos\COREOS\core\corelibc\crtw32\startup\onexit.c
Допълнителна информация
Multithread среда функцията таблици на atexit могат да бъдат повредени от друг atexit разговор поради безопасност нишка. Това може да доведе до повреждане на паметта и изключения. Функцията atexit се използва за регистриране на рутинни, която ще се изпълнява, когато бъдат затворени или .dll разтоварва. Пропуск в нишка безопасност може да доведе до промяна на този изход рутинните и повреждането на излизане функцията таблици.
Препратки
Научете повече за терминологията , използвана за описание на софтуерните актуализации от Microsoft.