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

Симптомы

Рассмотрим следующий сценарий:

  • Создание проекта Visual C++ в Visual Studio 2008 Пакет обновления 1 (SP1).

  • Файл проекта имеет узкий строковых литералов. Эти строковые литералы, содержащие знаков азиатских языков и не начинаются с буквы «м».

  • Строковые литералы использовать кодировку UTF-8.

В этом случае при компиляции проекта, строковые литералы интерпретируются ошибочно компилятором. Кроме того возникнет одна из следующих проблем:

  • Компиляции операция выполнена успешно. В созданном приложении строковые литералы отображаются некорректно. Кроме того может также появиться следующие предупреждающие сообщения при компиляции проекта:

    Предупреждение C4566: символ, представленный имя универсального символа 'xx' невозможно представить в текущей кодовой странице.

  • Сбой компиляции. Кроме того может появиться следующее сообщение об ошибке при компиляции проекта:

    ошибки C2078: слишком много инициализаторов

Причина

Эта проблема возникает, поскольку компилятор предполагает, что файл в разделе «Проблема» имеет кодировку MBCS. По этой причине compilerincorrectly преобразует файл.

Решение

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

Существует исправление от корпорации Майкрософт. Однако данное исправление предназначено для устранения только проблемы, описанной в этой статье. Применяйте данное исправление только в тех системах, которые имеют данную проблему.

Если исправление доступно для скачивания, имеется раздел "Пакет исправлений доступен для скачивания" в верхней части этой статьи базы знаний. Если этого раздела нет, отправьте запрос в службу технической поддержки для получения исправления.

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

http://support.microsoft.com/contactus/?ws=supportПримечание. В форме "Пакет исправлений доступен для скачивания" отображаются языки, для которых доступно исправление. Если нужный язык не отображается, значит исправление для данного языка отсутствует.

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

Visual Studio 2008 Пакет обновления 1 (SP1 для установки этого исправления) необходимо иметь.

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

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

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

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

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

Английская версия данного исправления содержит атрибуты файла (или более поздние атрибуты файлов), приведенные в следующей таблице. Дата и время для этих файлов указаны в формате общего скоординированного времени (UTC). При просмотре сведений о файле, он преобразуется в локальное время. Чтобы узнать разницу между временем по Гринвичу и местным временем, откройте вкладку Часовой пояс элемента Дата и время в панели управления.

Имя файла

Версия файла

Размер файла

Дата

Время

Платформа

C1.dll

15.0.30729.4987

678,720

09-Mar-2010

10:18

x86

C1xx.dll

15.0.30729.4987

2,204,488

09-Mar-2010

10:18

x86

C1xx.dll

15.0.30729.4987

2,215,240

09-Mar-2010

10:18

x86

C1xx.dll

15.0.30729.4987

2,339,656

09-Mar-2010

10:18

x86

C1xx.dll

15.0.30729.4987

2,505,552

09-Mar-2010

10:18

x86

C1xx.dll

15.0.30729.4987

2,891,592

09-Mar-2010

10:18

x64

Статус

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

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

Чтобы устранить ошибку в компиляторе, данное исправление и сохраните файл с метка порядка следования байтов. Кроме того добавьте следующую директиву «pragma» перед строковые литералы в исходном файле.

#pragma execution_character_set("utf-8")

Примечание. Директива «прагма» задает единицу перевода для исходного файла, пока директива «прагма» заменяется другая директива «прагма».

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

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

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

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

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

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

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

×