it-swarm.com.de

Unterschied zwischen C ++ Include und Import

Was ist der Unterschied zwischen #include und #import in C++?

89
Marius

#import ist eine Microsoft-spezifische Sache, anscheinend nur für COM- oder .NET-Sachen.

#include ist eine standardmäßige C/C++ - Präprozessoranweisung, mit der Headerdateien (oder gelegentlich auch andere Quellcodedateien) in Ihre Quellcodedatei aufgenommen werden.

57
Head Geek

Import in VC++: #import Ist für Typbibliotheken oder .tlbs (COM-Zeug).

Der Inhalt der Typbibliothek wird in C++ - Klassen konvertiert, die in der Regel automatisch die COM-Schnittstellen für Sie beschreiben, und dann in Ihre Datei aufgenommen.

Die Direktive #import Wurde von Microsoft als Erweiterung der C++ - Sprache eingeführt. Sie können darüber lesen unter dieser MSDN-Artikel .

Die Direktive #import Wird auch mit .NET/CLI-Inhalten verwendet.

Import in gcc: Der Import in gcc unterscheidet sich vom Import in VC++. Auf einfache Weise können Sie einen Header höchstens einmal einfügen. (In VC++ und GCC können Sie dies auch einmal über #pragma Tun.)

Die Direktive #import Wurde vom gcc-Team in Version 3.4 offiziell nicht anerkannt und funktioniert in allen früheren Versionen von gcc, die dies unterstützen, zu 99% einwandfrei

Include: #include Ist für die meisten Header-Dateien gedacht, aber um den Inhalt Ihrer aktuellen Datei voran zu stellen. #include Ist Teil des C++ - Standards. Sie können darüber lesen unter dieser MSDN-Artikel .

73
Brian R. Bondy

#import Ist insgesamt ein Lösung zum Üblichen

#ifndef ...
#define ...
#include ...
#endif

abhilfe schaffen. #import Enthält eine Datei nur, wenn sie zuvor noch nicht enthalten war.

Es kann erwähnenswert sein, dass Apples Objective-C auch Anweisungen #import Verwendet.

8
thatha

import war auch eines der Schlüsselwörter im Zusammenhang mit n2073, Module in C++ , das Daveed Vandevoorde im September dem Sprachausschuss vorschlug 2006. Ich bin kein guter Sprachfreak, um zu wissen, ob dieser Vorschlag endgültig zurückgestellt wurde oder auf die Umsetzung (Proof of Concept) durch den Autor oder eine andere Person wartet ...

4
Don Wakefield

Bitte beachten Sie, dass in gcc 4.1, #importis veraltet. Wenn Sie es verwenden, erhalten Sie eine Warnung:

#import ist eine veraltete GCC-Erweiterung

3
Mike Godin