import-Attribut
Die import-Direktive gibt eine andere IDL-, ODL- oder Headerdatei an, die Definitionen enthält, auf die Sie aus Ihrer IDL-Hauptdatei verweisen möchten.
import "filename" [[ , ... ]] ;
Parameter
-
filename
-
Gibt den Namen der zu importierenden Header-, IDL- oder ODL-Datei an.
Bemerkungen
Mit der import-Direktive werden alle IDL-Anweisungen in der importierten Datei, z. B. Typedefs, Konstantendeklarationen und Schnittstellendefinitionen, für den importierenden verfügbar. IDL-Datei.
Die importierte Datei wird getrennt von der importierenden IDL-Datei verarbeitet (d.h. der CPP-Präprozessor wird unabhängig aufgerufen). Auf diese Weise werden Präprozessor-Direktiven wie define nicht von einem importierten Header oder einer importierten IDL-Datei in die # importierende IDL-Datei überträgt.
Wie das C-Sprach-Präprozessormakro # enthält, weist die import-Direktive den Compiler an, Datentypen ein include, die in den importierten IDL-Dateien definiert wurden. Im Gegensatz # zur include-Direktive ignoriert die import-Direktive Prozedurprototypen, da keine Stubs für etwas in der importierten Datei generiert werden.
Spezifische Informationen zur Verwendung von Import zum Hinzufügen von Headerdateien in eine IDL-Datei finden Sie unter Importieren von Systemheaderdateien.
Der C-Sprachheader (. H) die für die Schnittstelle generierte Datei enthält nicht direkt die importierten Typen, sondern generiert stattdessen eine # include-Direktive für die Headerdatei, die der importierten Schnittstelle entspricht. Zum Beispiel beim Importieren von BASE. IDL in Abgeleitet. IDL, die generierte Headerdatei DERIVED. H enthält die # -Direktive include BASE.H.
Es gelten die folgenden Regeln:
- Das Schlüsselwort import ist optional und kann in der IDL-Datei 0 (null) oder mehrmals angezeigt werden.
- Jedes Importschlüsselwort kann mehr als einem Dateinamen zugeordnet werden.
- Trennen Sie mehrere Dateinamen durch Kommas.
- Sie müssen den Dateinamen in Anführungszeichen einschließen und die Import-Anweisung mit einem Semikolon (;).
- Sie können eine Schnittstelle ohne Attribute in eine andere IDL-Datei importieren. Die Schnittstelle darf jedoch nur Datentypen enthalten. Er darf keine Prozeduren enthalten. Wenn auch nur eine Prozedur in der importierten Schnittstelle enthalten ist, müssen Sie ein lokales - oder UUID-Attribut angeben.
- The import function is idempotent — that is, importing an interface more than once has no additional effect.
Hinweis
Das Verhalten der Import-Direktive ist unabhängig vom MIDL-Compilermodus switches /ms _ ext (Standardeinstellung), /osfund /app _ config. Der Compilermodus (/osf oder /ms _ ext) kann sich jedoch auf die Zeigerattributdekoration für importierte Typen auswirken. Weitere Informationen finden Sie unter Zeiger-Attribut-Typvererbung.
Beispiele
import "myoldodl.odl";
import "unknwn.idl";
import "part1.idl", "part2.idl", "part3.idl";