Objawy
Następujący komunikat o błędzie po uruchomieniu kompilator Microsoft Visual C++ 2008 do kompilowania plików lub do tworzenia projektu:
krytyczny błąd C1859: Nazwa pliku nagłówka nieoczekiwany wstępnie skompilowana nagłówek, po prostu ponowne kompilator może rozwiązać ten problem.
Ponadto ten problem nadal występuje, nawet po uruchomieniu kompilator ponownie. Ten problem występuje, gdy zostanie włączona opcja kompilatora Tworzenie i stosowanie wstępnie skompilowana nagłówka na komputerze z systemem Windows 7 lub Windows Server 2008.
Uwaga Można napotkać ten problem więcej często po włączeniu opcji kompilatora / analyze .
Przyczyna
Po włączeniu Tworzenie i stosowanie wstępnie skompilowana nagłówka opcja kompilatora, kompilator wymaga, że pliki wstępnie skompilowanym nagłówka i moduły względne nie są przemieszczane między kompilacje. Funkcja randomizacji układ przestrzeni adresowej (również znany jako ASLR) przemieszcza losowo modułów w procesie. W związku z tym ten błąd występuje, gdy moduły przechodzenie między kompilacji.
Rozwiązanie
Informacje o poprawce
Obsługiwana poprawka jest udostępniana przez firmę Microsoft. Jednak ta poprawka jest przeznaczona tylko do usunięcia problemu opisanego w tym artykule. Tylko w systemach, których dotyczy ten problem, należy zastosować tę poprawkę. 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ępną aktualizację oprogramowania zawierającą tę poprawkę.
Aby pobrać tę poprawkę z galerii kodu Microsoft Developer Network (MSDN), odwiedź następującą witrynę firmy Microsoft w sieci Web:
http://code.msdn.microsoft.com/KB976656
Uwaga Galerii kodów MSDN zawiera listę języków, dla których dostępna jest poprawka. Jeśli na liście język nie jest widoczny, to dlatego stronie resource galerię kodu nie jest dostępna dla danego języka.
Uwaga Jeśli wystąpią dodatkowe błędy lub konieczność rozwiązania problemu, być może trzeba będzie utworzyć osobne zlecenie usługi. Zwykłe koszty obsługi będą zastosowane do dodatkowych pytań i problemów, których nie można rozwiązać przy użyciu określonej poprawki. Aby uzyskać pełną listę numerów telefonów pomocy technicznej i obsługi klienta firmy Microsoft lub utworzyć osobne zlecenie usługi, odwiedź następującą witrynę firmy Microsoft w sieci Web:
http://support.microsoft.com/contactus/?ws=supportUwaga Tę poprawkę można również pobrać z następującej witryny firmy Microsoft w sieci Web:
https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=25785Uwaga: Ten pakiet poprawek zawiera poprawki dla "C1001: Wystąpił błąd wewnętrzny w kompilatorze (f:\dd\vctools\compiler\utc\src\p2\main.c pliku kompilatora, linia 182) w przypadku używania systemu .NET framework 3.5.
Wymagania wstępne
Musi mieć Microsoft Visual Studio 2008 z dodatkiem Service Pack 1 zainstalować tę poprawkę.
Wymagania dotyczące ponownego uruchomienia
Nie trzeba ponownie uruchomić komputer po zastosowaniu tej poprawki, jeśli jest używane żadne wystąpienie programu Visual Studio.
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 czasowa
w zakładce
Data i godzina
element w Panelu sterowania.
Nazwa pliku |
Wersja pliku |
Rozmiar pliku |
Data |
Godzina |
---|---|---|---|---|
C1.dll |
15.0.30729.4455 |
677,184 |
10-Dec-2009 |
02:31 |
C1.dll |
15.0.30729.4455 |
828,744 |
10-Dec-2009 |
02:31 |
C1xx.dll |
15.0.30729.4455 |
2,202,952 |
10-Dec-2009 |
02:31 |
C1xx.dll |
15.0.30729.4455 |
2,213,704 |
10-Dec-2009 |
02:31 |
C1xx.dll |
15.0.30729.4455 |
2,348,360 |
10-Dec-2009 |
02:31 |
C1xx.dll |
15.0.30729.4455 |
2,504,016 |
10-Dec-2009 |
02:31 |
C1xx.dll |
15.0.30729.4455 |
2,890,568 |
10-Dec-2009 |
02:31 |
Obejście problemu
Aby obejść ten problem, użyj jednej z następujących metod.
Metoda 1
Jeśli jest włączone, należy wyłączyć opcję kompilatora / analyze .
Metoda 2
Rozpocznij czystą kompilację.
Metoda 3
Uruchom ponownie komputer.
Metoda 4
Wyłącz Tworzenie i stosowanie wstępnie skompilowana nagłówka opcja kompilatora.
Uwaga Metody te nie są gwarantowane do pracy. Nawet jeśli używasz jednej z tych metod, nadal napotkać ten problem.
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.
Więcej informacji
Aby uzyskać więcej informacji na temat randomizacji układ przestrzeni adresowej odwiedź następujące ogłoszenie blogu firmy Microsoft:
Adres miejsca układ randomizacji w systemie Windows VistaAby uzyskać więcej informacji na temat błędów nagłówka wstępnie skompilowana odwiedź następujące ogłoszenie blogu firmy Microsoft: