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";