Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

Введение

В данной статье описаны проблемы в которомn исключение возникает, когда несколько потоков вызова функции C atexit «время выполнения» в то же время в Windows Embedded Compact 7. Доступно обновление для устранения этой проблемы. Перед установкой этого обновления необходимо установить все ранее выпущенные обновления для данного продукта.

Симптомы

При вызове функции во время выполнения atexit C в то же время в Windows Embedded Compact 7 нескольких потоков может возникнуть исключение. Исключение возникает, если код, который вызывает функции atexit не является сериализуемым, или при вставке функции atexit компилятором.

Причина

Эта проблема возникает, поскольку atexit функции времени выполнения C не является потокобезопасным. Таким образом повреждена таблица памяти, которую использует функции.

Решение

Сведения об обновлении программного обеспечения

Обновление поддерживаемого программного обеспечения от корпорации Майкрософт как обновления Windows Embedded Compact 7 ежемесячно (июня 2017 г.).

Примечание. Это Windows Embedded Compact 7 ежемесячное обновление доступно для загрузки на следующий веб-узел центра загрузки корпорации Майкрософт:

Windows Embedded Compact 7 обновления

Предварительные условия

Это обновление поддерживается только в том случае, если также были установлены все ранее выпущенные обновления для данного продукта.

Необходимость перезагрузки

После установки этого обновления необходимо выполнить чистую сборку всей платформы. Для этого воспользуйтесь одним из следующих способов:

  • В меню Построение выберите пункт Очистить решениеи выберите команду Построить решение.

  • В меню Построение выберите команду Перестроить решение.

Необходимо перезагрузить компьютер после применения этого обновления программного обеспечения.

Сведения о замене обновлений

Это обновление не заменяет других обновлений.

Сведения о файлах

Как это полная волна выпуска. Почти все двоичные файлы, подвержены этой версии.

Следующие исходные файлы, подвержены этой версии::

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

Дополнительные сведения

В многопоточной среде atexit функция таблиц могут быть повреждены из-за не потокобезопасность другим вызовом atexit. Это может привести к повреждению памяти и исключения. Atexit функция используется для регистрации процедуру, которая будет выполняться при выходе из программы или выгружает DLL-файл. Брешь в безопасности потока может привести к изменения этой процедуры выхода и повреждение таблицы функция выхода.

Ссылки

Дополнительные сведения о терминологии , которую корпорация Майкрософт использует для описания обновлений программного обеспечения.

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×