Freigeben über


Compilerfehler C2813

#import wird mit "/MP" nicht unterstützt.

C2813 wird ausgegeben, wenn Sie in einem Compilerbefehl die /MP -Compileroption und zwei oder mehr zu kompilierende Dateien angeben, von denen mindestens eine Datei die#import -Präprozessordirektive enthält. Die #import -Direktive generiert C++-Klassen aus den Typen in der angegebenen Typbibliothek und schreibt diese Klassen dann in zwei Headerdateien. Die #import -Direktive wird nicht unterstützt. Wenn mehrere Kompilierungseinheiten dieselbe Typbibliothek importieren, tritt zwischen diesen Einheiten ein Konflikt auf, wenn sie versuchen, die gleichen Headerdateien zur gleichen Zeit zu schreiben.

Dieser Compilerfehler und die /MP-Compileroption sind neu in Visual Studio 2008.

Beispiel

Im folgenden Beispiel wird C2813 generiert. Die Befehlszeile im "compile with:"-Kommentar weist den Compiler an, die Compileroptionen /MP und /c zum Kompilieren mehrerer Dateien zu verwenden. Mindestens eine der Dateien enthält die #import -Direktive. Zum Testen dieses Beispiels wird die gleiche Datei zweimal verwendet.

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