Poprawka: "Jeżeli" warunek nie działają poprawnie podczas uruchamiania aplikacji Visual C++ jest opracowany w dodatku SP1 dla programu Visual Studio 2010

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 2719783
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

Symptomy

Rozważmy następujący scenariusz:
  • Opracowanie aplikacji Visual C++ za pomocą programu Microsoft Visual Studio 2010 z dodatkiem Service Pack 1 (SP1).
  • Kod źródłowy aplikacji spełnia następujące warunki:
    • Kod źródłowy zawiera instrukcja IF w zagnieżdżonej pętli.
    • Jeśli warunek zawiera wyboru, która określa, czy zmienna całkowita jest ujemne, a także sprawdzenie, czy Określa, czy zmienna całkowita jest większy niż inny numer.
    • Kod, który znajduje się poza Jeśli warunek ma liniową funkcją, która używa zmiennej podpisane.
  • Kompilowanie aplikacji przy użyciu programu Visual Studio 2010 lub z wiersza polecenia.

    Uwaga Podczas, gdy jest włączona opcja kompilacji kompilowania aplikacji.
  • Możesz uruchomić aplikację.
W tym scenariuszu instrukcji IF nie działa poprawnie.

Rozwiązanie

Informacje o poprawce

Obsługiwana poprawka jest teraz udostępniana przez firmę Microsoft. Jednak jest ona przeznaczona do usunięcia tylko problemu opisanego w tym artykule. Zastosować go tylko w systemach, w których występuje ten problem. Ta poprawka może być dodatkowo testowana. Jeśli dany system nie jest poważnie narażony na ten problem, firma Microsoft zaleca, aby poczekać na następną aktualizację oprogramowania zawierającą tę poprawkę.

Aby natychmiast rozwiązać ten problem, skontaktuj się z biurem obsługi klienta firmy Microsoft w celu uzyskania poprawki. Aby uzyskać pełną listę numerów telefonów pomocy technicznej firmy Microsoft oraz informacje o kosztach odwiedź następujące witryny firmy Microsoft:
http://support.microsoft.com/contactus/?ws=support
Uwaga W wyjątkowych przypadkach opłaty, które są zwykle naliczane za telefoniczną pomoc techniczną mogą zostać anulowane, jeśli pracownik profesjonalnego wsparcia firmy Microsoft stwierdzi, że określona aktualizacja może rozwiązać problem. Koszty obsługi zwykłe zastosuje się do dodatkowych pytań i problemów, które nie kwalifikują się do określonej aktualizacji.

Wymagania wstępne

Aby zastosować tę poprawkę, musi mieć Visual Studio 2010 SP1 zainstalowane.

Informacje dotyczące ponownego uruchamiania

Nie trzeba ponownie komputera po zainstalowaniu poprawki, jeśli uszkodzonych plików nie są używane podczas procesu instalacji. Zaleca się, aby zamknąć wszystkie składniki związane z programu Visual Studio 2010, przed zainstalowaniem tej poprawki.

Informacje dotyczące zastępowania poprawek

Ta poprawka nie zastępuje żadnych innych poprawek.

Informacje dotyczące plików poprawki

Wersja anglojęzyczna tej poprawki ma atrybuty plików (lub nowsze) wymieniono w poniższej tabeli. Daty i godziny odpowiadające tym plikom zostały podane w formacie uniwersalnego czasu koordynowanego (UTC). Podczas wyświetlania informacji dotyczących plików, jest konwertowany na czas lokalny. Aby zobaczyć różnicę między czasem UTC i czasem lokalnym, należy użyć Strefa czasowa Zakładka w Data i godzina element w Panelu sterowania.
Wszystkie obsługiwane wersje programu Visual Studio 2010
Zwiń tę tabelęRozwiń tę tabelę
Nazwa plikuWersja plikuRozmiar plikuDataPlatforma
C2.dll16.0.40219.4042,608,19213-Gru-2012x86
C2.dll16.0.40219.4042,494,52813-Gru-2012x86
C2.dll16.0.40219.4042,593,34413-Gru-2012x86
C2.dll16.0.40219.4042,962,49613-Gru-2012x 64

Stan

Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft, które są wymienione w sekcji "Informacje zawarte w tym artykule dotyczą".

Więcej informacji

Aby uzyskać więcej informacji na temat Visual C++ /O Opcje Przejdź do następującej witryny sieci Web MSDN:
Ogólne informacje o opcjach /O
Aby odtworzyć ten problem, uruchom aplikacja w języku C++, który używa następującego kodu:
#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;
}
Po uruchomieniu aplikacji może zostać wyświetlony następujący wynik:
-3
-2
-1
0
1
2
3
4
5
6
7
8
Jednakże można oczekiwać następujące wyniki w tej sytuacji:
0
1
2
3
4
5
6
7
8

Właściwości

Numer ID artykułu: 2719783 - Ostatnia weryfikacja: 10 stycznia 2013 - Weryfikacja: 6.0
Słowa kluczowe: 
kbqfe kbfix kbexpertiseadvanced kbhotfixserver kbsurveynew kbmt KB2719783 KbMtpl
Przetłumaczone maszynowo
WAŻNE: Ten artykuł nie został przetłumaczony przez człowieka, tylko przez oprogramowanie do tłumaczenia maszynowego firmy Microsoft. Firma Microsoft oferuje zarówno artykuły tłumaczone przez ludzi, jak i artykuły tłumaczone maszynowo, dzięki czemu każdy użytkownik może uzyskać dostęp do całej zawartości bazy wiedzy Knowledge Base we własnym języku. Prosimy jednak pamiętać, że artykuły przetłumaczone maszynowo nie zawsze są doskonałe. Mogą zawierać błędy słownictwa, składni i gramatyki, przypominające błędy robione przez osoby, dla których język użytkownika nie jest językiem ojczystym. Firma Microsoft nie odpowiada za wszelkie nieścisłości, błędy lub szkody spowodowane nieprawidłowym tłumaczeniem zawartości oraz za wykorzystanie tej zawartości przez klientów. Oprogramowanie do tłumaczenia maszynowego jest często aktualizowane przez firmę Microsoft.
Anglojęzyczna wersja tego artykułu to: 2719783

Przekaż opinię

 

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