ИСПРАВЛЕНИЕ: Ошибки возникают после генерации исключения или выполнении функции «_declspec(noreturn)» при использовании C + +/ CLI приложения, построенные с помощью параметра оптимизации компилятора в Visual Studio 2005 с пакетом обновления 1

Переводы статьи Переводы статьи
Код статьи: 2435944 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Проблема

Рассмотрим следующий сценарий:
  • Создание C + +/ CLI проекта с помощью Microsoft Visual Studio 2005 пакетом обновления 1 (SP1).
  • Исходный код в проекте выполняет инструкцию throw или_declspec(noreturn)функция. Код, выполняемый после инструкции или _declspec(noreturn)часто выполняется функция.
  • Построение проекта с включенным параметром компилятора оптимизации. Например, включениеМаксимизировать скорость (/ O2) параметр компилятора оптимизации. Приложение создается после построения проекта.
  • Исключение или _declspec(noreturn)функция выполняется при запуске приложения.
В этом случае неправильно вызывается деструктор объекта неуправляемого стека в исходном коде. Кроме того может произойти нарушение прав доступа или другое неожиданное поведение может возникать в приложении.

Причина

Эта проблема возникает, поскольку код команды языковой среды выполнения (CLR), который пытается раскрутки стека выполняется в неправильное состояние обработки исключений.

Решение

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


Исправление выпущенного корпорацией Майкрософт. Тем не менее он предназначен для устранения проблемы, описанной в этой статье. Предлагаемое исправление должно применяться исключительно в системах, в которых обнаружена эта специфическая неполадка. Это исправление находится на стадии дополнительного тестирования. Таким образом Если вы не представляет особой эта проблема, рекомендуется отложить ее решение до выхода ближайшего пакета обновления, содержащего это исправление.

Чтобы решить проблему немедленно, обратитесь в службу технической поддержки Майкрософт для получения исправления. Полный список телефонов служб поддержки клиентов корпорации Майкрософт и сведения о стоимости поддержки посетите следующий веб-узел корпорации Майкрософт:
http://support.Microsoft.com/contactus/?ws=Support
Примечание В особых случаях, предусмотренная для звонков в службу поддержки может быть отменена, если специалистом службы поддержки Майкрософт определяет, что решения проблемы является специально выпущенное. Затраты на обычные службы поддержки будут применяться дополнительные вопросы и проблемы, которые не соответствуют требованиям особым обновлением.

ПримечаниеЭто исправление также можно загрузить с веб-узел Майкрософт:

Загрузите этот пакет исправлений с сайта Microsoft Connect 

Необходимые условия

Данное исправление необходимо иметь Microsoft Visual Studio 2005 службы с пакетом обновления 1 установлен.

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

Необходимо перезагрузить компьютер после установки исправления, если выполняется любой экземпляр Visual Studio. Корпорация Майкрософт рекомендует перед установкой исправления закройте приложений Visual Studio.

Сведения о замене исправлений

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

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

Английская версия исправления содержит атрибуты файла (или более поздними), приведенные в следующей таблице. Дата и время для файлов указаны в формате общего скоординированного времени (UTC). При просмотре сведений о файле, он преобразуется в локальное время. Чтобы узнать разницу между временем по Гринвичу и местным временем, следует использовать Часовой пояс на вкладке Дата и время элемент панели управления.
Свернуть эту таблицуРазвернуть эту таблицу
Имя файлаВерсия файлаРазмер файлаДатаВремяПлатформа
C2.dll14.0.50727.55872,273,28016 Ноября 2010 г.22: 41x 86
C2.dll14.0.50727.55877,196,16017 Ноября 2010 г.04: 08IA-64
C2.dll14.0.50727.55872,490,36817 Ноября 2010 г.04: 09x 86
C2.dll14.0.50727.55873,600,38417 Ноября 2010 г.04: 13x 64
C2.dll14.0.50727.55872,203,64817 Ноября 2010 г.04: 13x 86
Pgodb80.dll8.0.50727.558765 53616 Ноября 2010 г.22: 39x 86
Pgodb80.dll8.0.50727.5587130,56017 Ноября 2010 г.04: 09IA-64
Pgodb80.dll8.0.50727.558770,65617 Ноября 2010 г.04: 13x 64

Статус

Корпорация Майкрософт подтверждает, что это проблема в продуктах Microsoft, перечисленных в разделе «Относится к».

Временное решение

Чтобы обойти эту проблему, отключите параметр оптимизации при построении проекта.

Ссылки

Для получения дополнительных сведений о _declspec(noreturn)функции, посетите следующий веб-узел Microsoft Developer Network (MSDN):
Общие сведения о функции _declspec(noreturn)

Свойства

Код статьи: 2435944 - Последний отзыв: 31 мая 2011 г. - Revision: 3.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Visual Studio 2005 Service Pack 1
Ключевые слова: 
kbqfe kbhotfixserver kbfix atdownload kbexpertiseadvanced kbsurveynew kbmt KB2435944 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:2435944

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com