Перейти до основного
Підтримка
Вхід
Вхід за допомогою облікового запису Microsoft
Увійдіть або створіть обліковий запис.
Вітаємо,
Виберіть інший обліковий запис.
У вас є кілька облікових записів
Виберіть обліковий запис, за допомогою якого потрібно ввійти.

Причини

Використовується параметр компілятор /Ot (користь швидкого код) , під час створення застосунку, який налаштовано на на x64 платформу Microsoft Visual Studio 2005 пакета оновлень 1 (SP1). Під час запуску застосунку, деякі Якщо заяви може працювати неправильно. Таким чином, результати можуть бути непередбачуваними. Наприклад, Якщо заяви може пропущено згенерований код застосунку.

Ця проблема виникає в таких випадках.

  • Існують деякі MOV інструкції, між двома операціями для порівняння.

  • Ці порівняти, операції з використанням одного операндів.

  • Значення операнди змінено MOV інструкцій.

У цьому випадку Якщо заяви, у другому порівняння операції може пропущено.

Примітки

  • Ця проблема може виникати під час використання в /O2 /Ox параметр або створити застосунок.

  • Ця проблема виникає на x86 платформу.

Причина

Ця проблема виникає в тому, що компілятор optimizer неправильно припускається, що позначку, встановлений за XOR операції може використовуватися не враховуючи порівняння-операції.

Вирішення

Відомості про виправлень

Виправлення доступне від корпорації Майкрософт. Проте, це виправлення призначене тільки для вирішення проблеми, описаної в цій статті. Застосовуйте це виправлення лише до систем, які відчувають проблеми, описані в цій статті. Це виправлення може отримати додаткове тестування. Тому, якщо ця проблема не сильно впливає на вас, ми рекомендуємо почекати наступного оновлення програмного забезпечення, що містить це виправлення.

Якщо Виправлення доступне для завантаження, є розділ "Виправлення доступне для завантаження" на початку цієї статті бази знань. Якщо цей розділ не відображається, зверніться до служби підтримки клієнтів Microsoft, щоб отримати виправлення.

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

http://support.microsoft.com/contactus/?ws=supportПримітка. У формі "Виправлення доступне для завантаження" відображається список мов, для яких це виправлення доступне. Якщо потрібна мова не відображається, то виправлення недоступне для даної мови.

Попередні вимоги

Потрібно мати Visual Studio 2005 пакета Оновлень 1 для застосування цього виправлення.

Необхідність перезавантаження

Вам не потрібно перезавантажувати комп'ютер, після застосування цього виправлення.

Відомості про заміну виправлень

Це виправлення не замінює жодних інших виправлень.

Відомості про файли

Англійська версія цього виправлення на комп'ютері має атрибути файлів (або новіші атрибути файлів), подані в нижченаведеній таблиці. Значення дати й часу для цих файлів наведено за всесвітнім координованим часом (UTC). Переглядаючи відомості про файл, час конвертується у місцевий час. Щоб визначити різницю між UTC і місцевим часом, використайте вкладку Часовий пояс у Дата й час на панелі керування.

Ім'я файлу

Версія файлу

Розмір файлу

Дата

Час

Платформа

C2.dll

14.0.50727.3080

2,273,280

19 листопада 2008 року.

18:52

x86

C2.dll

14.0.50727.3080

7,192,576

19 листопада 2008 року.

23:25

IA-64

C2.dll

14.0.50727.3080

2,490,368

19 листопада 2008 року.

23:26

x86

C2.dll

14.0.50727.3080

3,600,384

19 листопада 2008 року.

23:33

x64

C2.dll

14.0.50727.3080

2,203,648

19 листопада 2008 року.

23:33

x86

Виправлення помилок

Щоб тимчасово усунути цю проблему, скористайтеся одним із наведених нижче способів.

  • Ви оголосити змінні, які використовуються в заяви Якщо використовувати змінні ключове слово.

  • Вимкніть параметр оптимізації швидкості. Наприклад, замініть параметр /Ot параметр /Os (користь малі код) . Або, якщо параметр /O1 , а не з /O2 /Ox параметр або.

  • Додайте рядок коду, перш ніж, Якщо заяви, по-друге, порівняйте операції. Наприклад, потрібно додати оператор printf .

Стан

Корпорація Майкрософт підтвердила існування цієї неполадки у продуктах Майкрософт, перелічених у розділі "Застосовується до".

Додаткові відомості

Додаткові відомості про одну або кілька з кодом, оператори може працювати неналежним чином, під час використання функції "оптимізація" код у Visual Studio 2005 клацніть номер статті в базі знань Microsoft Knowledge Base:

925792 заяви, один або кілька код може працювати неправильно під час використання функції "оптимізація" код у Visual Studio 2005

Щоб отримати додаткові відомості про термінологію оновлення програмного забезпечення, клацніть цей номер статті в базі знань Microsoft:

824684 Опис стандартну термінологію, яка використовується для опису оновлень програмного забезпечення Microsoft

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

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

Чи ця інформація була корисною?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?
Натиснувши кнопку "Надіслати", ви надасте свій відгук для покращення продуктів і служб Microsoft. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

Дякуємо за відгук!

×