Доступно исправление, которое устраняет некоторые проблемы в Microsoft Visual Studio 2010

Применимо к: Visual Studio Professional 2010Visual Studio Ultimate 2010Visual Studio Premium 2010

Введение

В данной статье исправление устраняет следующие проблемы в Microsoft Visual Studio 2010.

Проблема 1

Можно испытать неожиданное поведение при запуске приложения, которое содержит циклы в исходном коде. Эта проблема возникает, если исходный код компилируется с глобальной оптимизации (/ Og) включен.

Проблема 2

Рассмотрим следующий сценарий:
  • У вас есть проект Visual C++, который содержит файл Atlcomcli.h.
  • Задать параметр компилятора /J для определения_CHAR_UNSIGNEDмакросов в проекте.
  • Скомпилируйте проект.
В этом случае появляется одно из следующих сообщений об ошибке:
  • Ошибка C2338: не удается скомпилировать CVarTypeInfo < char > /J или _CHAR_UNSIGNED флаг включен
  • Ошибка C2338: не удается скомпилировать CVarTypeInfo < char * > /J или _CHAR_UNSIGNED флаг включен

Проблема 3

Нарушение прав доступа при запуске приложения Visual C++, который создан для более x86 версии Windows. Эта проблема возникает, когда приложение имеет дерево выражений, который имеет два входных аргументов типа массива.

Причина


Причина возникновения неполадки 1

Эта проблема возникает из-за неправильного цикл для оптимизации выполняется. В этом случае Некорректное создание кода.

Причина возникновения проблемы 2

Эта проблема возникает, так как статические утверждения в файле Atlcomcli.h параметр /J и макрос CHAR_UNSIGNED неправильно.

Причина возникновения проблемы 3

Эта проблема возникает из-за аргументов инструкции push перемешиваются. Таким образом для передачи инструкции передаются неправильные аргументы.

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


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

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

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

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

Microsoft Visual Studio 2010 для установки этого исправления необходимо иметь.

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

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

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

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

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


Английская версия данного исправления содержит атрибуты файла (или более поздние атрибуты файлов), приведенные в следующей таблице. Дата и время для этих файлов указаны в формате общего скоординированного времени (UTC). При просмотре сведений о файле, он преобразуется в локальное время. Чтобы узнать разницу между временем по Гринвичу и местным временем, следует использовать
Часовой пояс
вкладке
Дата и время
элемент панели управления.
Имя файлаВерсия файлаРазмер файлаДатаВремяПлатформа
C2.dll16.0.30319.3142,510,14430-May-201020:48x86
C2.dll16.0.30319.3142,588,48030-May-201020:48x86
C2.dll16.0.30319.3142,630,97630-May-201020:48x86
C2.dll16.0.30319.3142,977,60030-May-201020:48x64
C2.dll16.0.30319.3147,351,61630-May-201020:48IA-64

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


Обходной путь для проблемы 1

Чтобы обойти эту проблему, отключите глобальной оптимизации. Дополнительные сведения об отключении глобальной оптимизации щелкните следующий номер статьи базы знаний Майкрософт:
ИСПРАВИТЬ 216181 : неверный код, созданный с использованием оптимизации /Og

Обходной путь для проблемы 2

Чтобы обойти эту проблему, используйте директиву pragma для включения в файл Atlcomcli.h.
#pragma push_macro("ATLSTATIC_ASSERT")
#undef ATLSTATIC_ASSERT

#define ATLSTATIC_ASSERT(x,y)

#include <atlcomcli.h>

#undef ATLSTATIC_ASSERT

#pragma pop_macro("ATLSTATIC_ASSERT")