Importieren von Dateien und Typbibliotheken
Mit den MIDL-Schlüsselwörtern include, import und importlib können Sie Code wiederverwenden, indem Sie auf vorhandene Header-, IDL- und ODL-Dateien (Object Definition Language) und kompilierte Typbibliotheken verweisen.
Mit der ACF include-Anweisung können Sie in einer ACF-Datei eine oder mehrere C-Sprachheaderdateien angeben, die in den von MIDL generierten Stubcode eingeschlossen werden sollen. Die generierte Datei enthält eine Zeile mit einer #include C-Präprozessordirektive mit der angegebenen Headerdatei. Verwenden Sie diese include-Anweisung , um Headerdateien einzufügen, die für eine bestimmte Betriebsumgebung spezifisch sind und keine Informationen enthalten, die für die Schnittstelle zwischen Client und Server erforderlich sind. Verwenden Sie include nicht für Headerdateien, die Datentypen enthalten, die für die IDL-Datei verfügbar sein sollen. Verwenden Sie stattdessen die Import-Direktive .
Beispiel 1
[
auto_handle
]
interface X86PC
{
include "gendefs.h", "protos.h", "myfile.h";
//interface typdefs and function declarations here
}
Die IDL-Importdirektive ist die Standardmethode zum Einbinden von Typ- und Schnittstellendefinitionen aus anderen IDL-Dateien (oder ODL)-Dateien und Headerdateien in Ihre IDL-Datei. Alle IDL-Anweisungen in der importierten Datei, z. B. typedefs, const-Deklarationen und Schnittstellendefinitionen, werden für die importierende IDL-Datei verfügbar.
Wie die C-Sprach-Präprozessordirektive #include, weist die Importdirektive den Compiler an, Datentypen einzuschließen, die in den importierten IDL-Dateien definiert wurden. Im Gegensatz zur #include-Direktive ignoriert die Importdirektive Prozedurprototypen, da für nichts in der importierten Datei Stubs generiert werden. Da der Präprozessor separat für die importierte Datei aufgerufen wird, werden Präprozessordirektiven (z. B. **) nicht auf die importierende IDL-Datei übertragen.
Weitere Informationen zur Verwendung von Import zum Einschließen von Systemheaderdateien in eine IDL-Datei finden Sie unter Importieren von Systemheaderdateien.
Beispiel 2
[
uuid(. . .), object
]
interface IKnown : IUnknown
{
import "base.idl", "unknwn.idl", "helper.idl";
//remainder of interface definition
}
Mit der ODL importlib-Direktive können Sie in Ihrer IDL- oder ODL-Datei auf eine kompilierte Typbibliothek verweisen. Die importlib-Direktive muss sich innerhalb einer library-Anweisung befinden und anderen Typbeschreibungen in der Bibliothek vorangestellt werden. Die importierte Bibliothek sowie die generierte Bibliothek müssen der Anwendung zur Laufzeit zur Verfügung stehen.
Beispiel 3
library NewBrowser
{
importlib("stdole32.tlb");
importlib("legacy.tlb");
//remainder of library definition
};
Sie können auch die C-Präprozessor- #include-Direktive verwenden, um Header und andere Dateien in Ihre IDL- oder ODL-Datei einzuschließen. Beachten Sie jedoch, dass diese Direktive buchstäblich den gesamten Inhalt der angegebenen Datei enthält. Wenn eine Headerdatei Prototypen enthält, die Sie in den von MIDL generierten Stubdateien nicht benötigen oder benötigen, oder wenn sie nicht aktualisierbare Typdefinitionen enthält, sollten Sie die MIDL-Importdirektive anstelle der #include-Direktive verwenden.
Zugehörige Themen