FIX: "Якщо" умова не працює правильно при запуску застосунку Visual C++, що розробляється в Visual Studio 2010 SP1

Переклади статей Переклади статей
Номер статті: 2719783 - Показ продуктів, яких стосується ця стаття.
Розгорнути все | Згорнути все

На цій сторінці

Ознаки

Розглянемо таку ситуацію.
  • За допомогою Microsoft Visual Studio 2010 пакет оновлень 1 (SP1) розробки додатків Visual C++.
  • Вихідний код додатка відповідає таким умовам:
    • Вихідний код містить заяву, якщо в вкладеного циклу.
    • Якщо умова містить перевірку, яка визначає негативно змінної ціле число а також перевірити, що визначає, чи змінної ціле більше, ніж інший номер.
    • Код, що знаходиться за межами Якщо умова має лінійна функція, що використовується підписом змінної.
  • компілятор за допомогою командний рядок або Visual Studio 2010.

    Примітка Компіляції застосунку під Вільний час компіляції параметр увімкнуто.
  • Запустити застосунок.
У цьому випадку оператор IF не працює правильно.

Розв'язанн

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

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

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

Необхідні умови

Щоб застосувати це виправлення, ви повинні мати Visual Studio 2010 встановили SP1.

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

Вам не доведеться перезавантажити комп’ютер-зразок після інсталяції виправлення, якщо потерпілих файлів не використовується під Вільний час процесу інсталяції. Рекомендовано закрити всі пов'язані з Visual Studio 2010 компонентів, перш ніж інсталювати виправлення.

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

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

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

Англійська версія цього виправлення має атрибути файлу (або новіші атрибути файлів) подані в нижченаведеній таблиці. Значення дати й часу для цих файлів перераховані в всесвітній координований Вільний час (UTC). Під Вільний час перегляду відомостей про файл, перераховуються в місцевий Вільний час. Щоб визначити різницю між UTC і місцевим часом, використовувати в часовий пояс у вкладці на Дата і Вільний час елемент панелі керування.
Для всіх підтримуваних версій Visual Studio 2010
Згорнути цю таблицюРозгорнути цю таблицю
Ім'я файлуВерсія файлуРозмір файлуДатаВільний часПлатформа
C2.dll16.0.40219.4042,608,19213-Dec-201207: 24на базі x86-процесорів
C2.dll16.0.40219.4042,494,52813-Dec-201204: 57на базі x86-процесорів
C2.dll16.0.40219.4042,593,34413-Dec-201204: 57на базі x86-процесорів
C2.dll16.0.40219.4042,962,49613-Dec-201204: 57x64

Стан

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

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

Щоб отримати додаткові відомості про параметри Visual C++ /O перейдіть до наступного веб-сайт MSDN:
Загальні відомості про параметри /O
Щоб відтворити цю проблему, запустіть C++ застосунку, який використовує такий код:
#include "stdafx.h"
 
int main()
{
        for( int i = -1; i <= 3; i++ ) 
        {
               for( int j = -1; j <= 3; j++ ) 
               {
                      if (i >= 0 && i < 3 && j >= 0 && j < 3)
                      {
                            printf("%d\n", i * 3 + j);
                      }
               }
        }
        return 0;
}
Після запуску застосунку ви отримаєте такий результат:
-3
-2
-1
0
1
2
3
4
5
6
7
8
Однак, ви очікуєте наступні результати в цій ситуації:
0
1
2
3
4
5
6
7
8

Властивості

Номер статті: 2719783 - Востаннє переглянуто: 8 січня 2013 р. - Редакція: 3.0
Застосовується до:
  • Microsoft Visual Studio 2010 Service Pack 1, у разі використання з:
    • Microsoft Visual Studio 2010 Ultimate
    • Microsoft Visual Studio 2010 Professional
Ключові слова: 
kbqfe kbfix kbexpertiseadvanced kbhotfixserver kbsurveynew kbmt KB2719783 KbMtuk
Машинний переклад
УВАГА! Цю статтю переклала програма машинного перекладу Microsoft, а не людина. Корпорація Microsoft пропонує вам як машинні переклади, так і переклади фахівців, щоб Ви мали доступ до всіх статей бази знань рідною мовою. Проте стаття, яку переклав комп’ютер, не завжди бездоганна. Вона може містити лексичні, синтаксичні або граматичні помилки. Так само помиляється іноземець, спілкуючись вашою рідною мовою. Корпорація Microsoft не несе відповідальність за жодні неточності, помилки або шкоду, завдану неправильним перекладом змісту або його використанням з боку користувачів. Крім того, корпорація Microsoft часто оновлює програму машинного перекладу.
Клацніть тут, щоб переглянути цю статтю англійською мовою: 2719783

Надіслати відгук

 

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