Condividi tramite


Errore del compilatore C2813

Aggiornamento: novembre 2007

Messaggio di errore

#import non supportato con /MP
#import is not supported with /MP

L'errore C2813 viene generato se in un comando del compilatore vengono specificati l'opzione /MP e due o più file da compilare e inoltre uno o più file contengono la direttiva per il preprocessore #import. La direttiva #import genera classi C++ dai tipi contenuti nella libreria dei tipi specificata e quindi scrive tali classi in due file di intestazione. La direttiva #import non è supportata nel caso in cui più unità di compilazione importano la stessa libreria dei tipi, dal momento che, quando tentano di scrivere contemporaneamente gli stessi file di intestazione, viene generato un conflitto.

Questo errore del compilatore e l'opzione del compilatore /MP sono nuove in Visual Studio 2008.

Esempio

Nell'esempio seguente viene generato l'errore C2813. Tramite la riga di comando nel commento "compile with:" viene indicato al compilatore di utilizzare le opzioni /MP e /c per compilare diversi file. Almeno uno dei file contiene la direttiva #import. A scopo di verifica, nell'esempio viene utilizzato due volte lo stesso file.

// C2813.cpp
// compile with: /MP /c C2813.cpp C2813.cpp
#import "C:\windows\system32\stdole2.tlb"   // C2813
int main() 
{
}