Generieren einer Typbibliothek mit MIDL
Das Element der obersten Ebene der ODL-Syntax ist die Bibliotheks-Anweisung (Bibliotheksblock). Jede andere ODL-Anweisung, mit Ausnahme der Attribute, die auf die Bibliotheks-Anweisung angewendet werden, muss innerhalb des Bibliotheksblocks definiert werden. Wenn der MIDL-Compiler einen Bibliotheksblock erkennt, generiert er eine Typbibliothek auf die gleiche Weise wie MkTypLib. Abgesehen von einigen Ausnahmen, die unter Unterschiede zwischen MIDL und MKTYPLIBbeschrieben werden, sollten die Anweisungen im Bibliotheksblock der gleichen Syntax folgen wie in der ODL-Sprache und MkTypLib.
Hinweis
Das Mktyplib.exe ist veraltet. Verwenden Sie stattdessen den MIDL-Compiler.
Sie können ODL-Attribute auf Elemente anwenden, die innerhalb oder außerhalb des Bibliotheksblocks definiert sind. Diese Attribute haben außerhalb des Bibliotheksblocks keine Auswirkungen, es sei denn, auf das Element, auf das sie angewendet werden, wird innerhalb des Bibliotheksblocks verwiesen. Anweisungen innerhalb des Bibliotheksblocks können auf ein externes Element verweisen, indem sie es entweder als Basistyp verwenden, von ihm erben oder wie gezeigt in einer Zeile darauf verweisen:
<some IDL definitions including definitions for interface IFace and struct bar>
[<some attributes>]
library a
{
interface IFace;
struct this_struct;
...
};
Wenn auf ein Element, das außerhalb des Bibliotheksblocks definiert ist, innerhalb des Bibliotheksblocks verwiesen wird, wird seine Definition in die generierte Typbibliothek eingeteilt. Der MIDL-Compiler behandelt die Anweisungen außerhalb eines Bibliotheksblocks als typische IDL-Datei und analysiert diese Anweisungen wie immer. Normalerweise bedeutet dies das Generieren von Stubs in C-Sprache für eine RPC-Anwendung.
Weitere Informationen zur allgemeinen Syntax für eine ODL-Datei finden Sie unter ODL-Dateisyntax.