Sintomi
Quando si esegue il compilatore Microsoft Visual C++ 2008 per compilare i file o per compilare un progetto, viene visualizzato il seguente messaggio di errore:
Errore irreversibile C1859: nome file di intestazione imprevisto intestazione precompilata, è sufficiente eseguire nuovamente il compilatore potrebbe risolvere il problema.
Inoltre, il problema continua a verificarsi anche quando si esegue il compilatore nuovamente. Questo problema si verifica quando si attiva l'opzione del compilatore Crea/Usa intestazione precompilata su un computer che esegue Windows 7 o Windows Server 2008.
Nota: Se si attiva l'opzione del compilatore /analyze , è possibile riscontrare il problema più frequente.
Causa
Quando si attiva l'opzione del compilatore Crea/Usa intestazione precompilata , il compilatore richiede che i relativi moduli e file di intestazione precompilati non si spostano tra le compilazioni. Tuttavia, la funzionalità Address Space Layout Randomization (noto anche come ASLR) consente di spostare in modo casuale moduli in un processo. Pertanto, l'errore si verifica quando i moduli di spostarsi tra le compilazioni.
Risoluzione
Informazioni sull'hotfix
Un hotfix supportato è disponibile da Microsoft. Tuttavia, questo hotfix è destinato esclusivamente alla correzione del problema descritto in questo articolo. Applicare questo hotfix solo ai sistemi in cui si verificano questo problema specifico. Questo hotfix potrebbe essere sottoposto ad ulteriori test. Se il problema non causa gravi difficoltà, si consiglia di attendere il successivo aggiornamento software contenente tale hotfix.
Per scaricare questo aggiornamento rapido dalla Microsoft Developer Network (MSDN) Code Gallery, visitare il seguente sito Web Microsoft:
http://code.msdn.microsoft.com/KB976656
Nota: MSDN Code Gallery vengono visualizzate le lingue per cui è disponibile l'hotfix. Se non viene visualizzata la lingua elencata, è perché la pagina delle risorse di Code Gallery non è disponibile per tale lingua.
Nota: Se si verificano ulteriori problemi o se è necessaria attività di risoluzione aggiuntiva, potrebbe essere necessario creare una richiesta di assistenza separata. I costi di supporto normale verranno applicati per eventuali ulteriori domande e problemi che non dovessero rientrare specifico hotfix in questione. Per un elenco completo dei numeri di telefono del servizio clienti Microsoft e supporto tecnico o per creare una richiesta di assistenza separata, visitare il seguente sito Web Microsoft:
http://support.microsoft.com/contactus/?ws=supportNota: È inoltre possibile scaricare questo aggiornamento rapido dal seguente sito Web Microsoft:
https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=25785Nota: Questo pacchetto di hotfix contiene anche una correzione per "C1001: si è verificato un errore interno del compilatore (compilatore file f:\dd\vctools\compiler\utc\src\p2\main.c, riga 182) quando si utilizza .NET framework 3.5.
Prerequisiti
È necessario disporre di Microsoft Visual Studio 2008 Service Pack 1 per applicare questo hotfix.
Richiesta di riavvio
Non è necessario riavviare il computer dopo avere applicato l'hotfix se non viene utilizzata alcuna istanza di Visual Studio.
Informazioni sulla sostituzione dell'aggiornamento rapido
Questo hotfix non sostituisce eventuali altri aggiornamenti rapidi.
Informazioni sui file
La versione inglese di questo hotfix presenta gli attributi di file (o attributi successivi) elencati nella tabella riportata di seguito. Le date e ore dei file sono elencate in base al formato UTC (Coordinated Universal Time Coordinated). Quando si visualizzano le informazioni sul file, viene convertito in ora locale. Per calcolare la differenza tra ora UTC e ora locale, utilizzare il
Fuso orario
scheda di
Data e ora
elemento nel Pannello di controllo.
Nome del file |
Versione del file |
Dimensione del file |
Data |
Ora |
---|---|---|---|---|
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 |
Soluzione alternativa
Per risolvere questo problema, utilizzare uno dei metodi descritti di seguito.
Metodo 1
Se è attivata, è necessario disattivare l'opzione del compilatore /analyze .
Metodo 2
Avviare una generazione pulita.
Metodo 3
Riavviare il computer.
Metodo 4
Disattivare l'opzione del compilatore Crea/Usa intestazione precompilata .
Nota: Questi metodi non è garantiti. Anche se si utilizza uno di questi metodi, è ancora possibile riscontrare questo problema.
Stato
Microsoft ha confermato che questo è un problema dei prodotti Microsoft elencati nella sezione "Si applica a".
Ulteriori informazioni
Per ulteriori informazioni su Address Space Layout Randomization, visitare il seguente post del blog di Microsoft:
Indirizzo Space Layout Randomization in Windows VistaPer ulteriori informazioni sugli errori di intestazione precompilata, visitare il seguente post del blog di Microsoft: