importattribut

Importdirektivet anger en annan IDL-, ODL- eller rubrikfil som innehåller definitioner som du vill referera till från huvud-IDL-filen.

import "filename" [[ , ... ]] ;

Parameters

filename

Anger namnet på rubriken, IDL- eller ODL-filen som ska importeras.

Anmärkningar

Med importdirektivet blir alla IDL-instruktioner i den importerade filen, till exempel typedefs, konstanta deklarationer och gränssnittsdefinitioner tillgängliga för importen. IDL-fil.

Den importerade filen bearbetas separat (vilket innebär att CPP-förprocessorn anropas separat) från den importerande IDL-filen. På så sätt överförs inte förbearbetningsdirektiv, till exempel #define, från ett importerat huvud eller en IDL-fil till den importerande IDL-filen.

Precis som makrot för C-språkförprocessorn #include uppmanar importdirektivet kompilatorn att inkludera datatyper som har definierats i de importerade IDL-filerna. Till skillnad från #include-direktivet ignorerar importdirektivet prototyper av proceduren, eftersom inga stubs genereras för något i den importerade filen.

Specifik information om hur du använder import för att inkludera huvudfiler i en IDL-fil finns i Importera systemhuvudfiler.

C-språkrubriken (. H)-filen som genereras för gränssnittet innehåller inte direkt de importerade typerna utan genererar i stället ett #include direktiv för huvudfilen som motsvarar det importerade gränssnittet. Till exempel när du importerar BASE. IDL till din DERIVED. IDL, den genererade huvudfilen DERIVED. H innehåller direktivet #include BASE.H.

Följande regler gäller:

  • Nyckelordet importera är valfritt och kan visas noll eller flera gånger i IDL-filen.
  • Varje importnyckelord kan associeras med fler än ett filnamn.
  • Avgränsa flera filnamn med kommatecken.
  • Du måste omsluta filnamnet inom citattecken och avsluta importinstruktionen med ett semikolon (;).
  • Du kan importera ett gränssnitt som inte har några attribut till en annan IDL-fil. Gränssnittet får dock bara innehålla datatyper. den får inte innehålla några procedurer. Om även en procedur finns i det importerade gränssnittet måste du ange ett lokalt attribut eller UUID-attribut .
  • Importfunktionen är idempotent – det vill sa att import av ett gränssnitt mer än en gång inte har någon ytterligare effekt.

Anmärkning

Beteendet för importdirektivet är oberoende av MIDL-kompilatorlägesväxlarna /ms_ext (standard), /osf och /app_config. Kompilatorläget (/osf eller /ms_ext) kan dock påverka dekoration av pekarattribut på importerade typer. Mer information finns iPointer-Attribute Typ arv.

 

Exempel

import "myoldodl.odl";  
import "unknwn.idl";
import "part1.idl", "part2.idl", "part3.idl"; 

Se även

/app_config

IDL-fil (Interface Definition)

importlib

Inkluderar

Importera systemhuvudfiler

Importera filer och typbibliotek

/ms_ext

/Fos