Importieren von System-Headerdateien

Obwohl es häufig möglich ist, die #include-Direktive zu verwenden, um Headerdateien in Ihre IDL-Datei einzuschließen, wird dies nicht empfohlen. Der MIDL-Compiler generiert Stubs für alle Funktionen, die in der zu kompilierenden IDL-Datei definiert sind. In der Regel enthält eine Headerdatei eine Reihe von Prototypen, die Sie weder benötigen noch in Ihre Stubdateien einschließen möchten, und eine #include alle diese Definitionen effektiv in Ihre Standard IDL-Datei einfügt. Wenn in der Headerdatei nicht aktualisierbare Typen definiert sind, wird die IDL-Datei möglicherweise nicht kompiliert.

Es gibt zwei Möglichkeiten, Typdefinitionen aus Headerdateien in eine IDL-Datei einzuschließen:

  • Verwenden Sie die Import-Direktive , um in eine Headerdatei definierte Datentypen einzuschließen. Im Gegensatz zur C-Sprach-#include-Direktive greift die Importdirektive nur Typ- und Konstantendefinitionen auf und ignoriert Prozedurprototypen. Dieser Ansatz funktioniert, solange Ihre Standard IDL-Datei nicht auf nicht aktualisierbare Typen verweist, die in der Headerdatei definiert sind.
  • Erstellen Sie eine Hilfs-IDL-Datei mit einer Dummy-Schnittstelle, die die Headerdateien enthält. Verwenden Sie dann die Import-Direktive , um die Hilfsdatei einzuschließen. Auf diese Weise werden in den kompilierten Stubs nur die Typdefinitionenangezeigt. Beispiel:
//in helper.idl:
interface dummy
{ 
   #include "kitchensink.h"
   #include "system.h"
}

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