Applies ToVisual Studio Professional 2010 Visual Studio Ultimate 2010 Visual Studio Premium 2010 Visual Studio Test Professional 2010

Wprowadzenie

Poprawki, którą opisano w tym artykule rozwiązuje następujące problemy w programie Microsoft Visual Studio 2010.

Problem 1

Po uruchomieniu aplikacji, która ma pętle w kodzie źródłowym wystąpi nieoczekiwane zachowanie. Ten problem występuje, jeśli kod źródłowy jest kompilowany z optymalizacją globalne (/ Og) włączony.

Problem 2

Rozważ następujący scenariusz:

  • Masz projektu Visual C++, który zawiera plik Atlcomcli.h.

  • Określ opcję kompilatora /J do definiowania_CHAR_UNSIGNEDmakro w projekcie.

  • Skompiluj projekt.

W tym scenariuszu wyświetlany jest jeden z następujących komunikatów o błędzie:

  • Błąd C2338: nie można skompilować CVarTypeInfo < char > z włączoną flagą /J lub _CHAR_UNSIGNED

  • Błąd C2338: nie można skompilować CVarTypeInfo < char * > z włączoną flagą /J lub _CHAR_UNSIGNED

Problem 3

Naruszenie zasad dostępu występuje po uruchomieniu aplikacji Visual C++, który jest zbudowany dla x86 wersji systemu Windows. Ten problem występuje, gdy aplikacja ma drzewa wyrażenie, która ma dwa argumenty wejściowe typu tablicy.

Przyczyna

Przyczyna problemu 1

Ten problem występuje, ponieważ Optymalizacja niepoprawne pętla jest wykonywana. Powoduje to, że nieprawidłowo wygenerowany kod.

Przyczyna problemu 2

Ten problem występuje, ponieważ statyczne potwierdzeń w pliku Atlcomcli.h są ustawione na opcję /J i makra CHAR_UNSIGNED niepoprawnie.

Przyczyną problemu 3

Ten problem występuje, ponieważ argumenty w instrukcjach replikacji wypychanej są mieszane. W związku z tym Niepoprawne argumenty są przekazywane do pchania instrukcje.

Więcej informacji

Informacje o poprawce

Obsługiwana poprawka jest obecnie udostępniana przez firmę Microsoft. Jednak jest ona przeznaczona do usunięcia tylko problemu opisanego w tym artykule. Zastosuj ją tylko w systemach, w których występuje ten problem. Ta poprawka może być wciąż w fazie testowania. Jeśli dany system nie jest poważnie narażony na ten problem, firma Microsoft zaleca, aby poczekać na następny program Visual Studio 2010, zawierający tę poprawkę.Aby natychmiast rozwiązać ten problem, skontaktuj się z biurem obsługi klienta 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ącą witrynę sieci Web firmy Microsoft:

http://support.microsoft.com/contactus/?ws=supportUwaga W wyjątkowych przypadkach opłaty za połączenie z pomocą techniczną mogą zostać anulowane, jeśli specjalista firmy Microsoft zdecyduje że określona aktualizacja, może rozwiązać Twój problem. Koszty obsługi zwykłych zastosuje się do dodatkowych pytań i problemów, których nie można rozwiązać przy użyciu określonej aktualizacji.

Wymagania wstępne

Musi mieć Microsoft Visual Studio 2010 zainstalować tę poprawkę.

Wymagania dotyczące ponownego uruchomienia

Nie trzeba ponownie uruchomić komputer po zastosowaniu tej poprawki, jeśli jest używany plik nie dotyczy.

Informacje dotyczące zastępowania poprawek

Ta poprawka nie zastępuje żadnych innych poprawek.

Informacje o plikach

Wersja anglojęzyczna tej poprawki ma atrybuty plików (lub nowsze) wymienione w poniższej tabeli. Daty i godziny odpowiadające tym plikom zostały podane w formacie uniwersalnego czasu koordynowanego (UTC, Coordinated Universal Time). Po wyświetleniu informacji o pliku są konwertowane na czas lokalny. Aby zobaczyć różnicę między czasem UTC i czasem lokalnym, należy użyćStrefa czasowaw zakładceData i godzinaelement w Panelu sterowania.

Nazwa pliku

Wersja pliku

Rozmiar pliku

Data

Godzina

Platforma

C2.dll

16.0.30319.314

2,510,144

30-May-2010

20:48

x86

C2.dll

16.0.30319.314

2,588,480

30-May-2010

20:48

x86

C2.dll

16.0.30319.314

2,630,976

30-May-2010

20:48

x86

C2.dll

16.0.30319.314

2,977,600

30-May-2010

20:48

x64

C2.dll

16.0.30319.314

7,351,616

30-May-2010

20:48

IA-64

Obejście problemu

Obejście problemu 1

Aby obejść ten problem, należy wyłączyć optymalizacji globalnej. Aby uzyskać więcej informacji na temat sposobu wyłączania optymalizacji globalnej, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

NAPRAW 216181 : niepoprawny kod wygenerowany przy optymalizacji/og

Obejście problemu 2

Aby obejść ten problem, należy użyć następującej dyrektywy pragmy można dołączyć plik 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")

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.