Dela via


Importera systemhuvudfiler

Det är ofta möjligt att använda #include-direktivet för att inkludera huvudfiler i din IDL-fil, men det rekommenderas inte. MIDL-kompilatorn genererar stubs för alla funktioner som definieras i IDL-filen som kompileras. Vanligtvis innehåller en rubrikfil ett antal prototyper som du varken behöver eller vill inkludera i dina stub-filer, och en #include effektivt placerar alla dessa definitioner i din huvudsakliga IDL-fil. Om det dessutom finns icke-flyttbara typer som definierats i header-filen kanske IDL-filen inte kompileras.

Det finns två sätt att inkludera typdefinitioner från huvudfiler i en IDL-fil:

  • Använd -importdirektivet för att inkludera datatyper som definierats i en header-fil. Till skillnad från direktivet om C-språk #include tar direktivet import bara upp typ- och konstanta definitioner och ignorerar prototyper av procedurer. Den här metoden fungerar så länge huvud-IDL-filen inte refererar till några icke-flyttbara typer som definierats i headerfilen.
  • Skapa en hjälp-IDL-fil med ett dummy-gränssnitt som innehåller huvudfilerna. Använd sedan importera-direktivet för att inkludera hjälpfilen. På så sätt kommer endast typedefatt visas i de kompilerade stubbarna. Till exempel:
//in helper.idl:
interface dummy
{ 
   #include "kitchensink.h"
   #include "system.h"
}

//in main.idl:
import "helper.idl";