Generieren einer Typbibliothek mit MIDL
Das Element der obersten Ebene der ODL-Syntax ist die library-Anweisung (Bibliotheksblock). Jede andere ODL-Anweisung mit Ausnahme der Attribute, die auf die library-Anweisung angewendet werden, muss innerhalb des Bibliotheksblocks definiert werden. Wenn der MIDL-Compiler einen Bibliotheksblock sieht, generiert er eine Typbibliothek auf die gleiche Weise wie MkTypLib. Mit wenigen Ausnahmen, die in Unterschiede zwischen MIDL und MKTYPLIB beschrieben werden, sollten die Anweisungen innerhalb des Bibliotheksblocks der gleichen Syntax wie in der ODL-Sprache und MkTypLib folgen.
Hinweis
Das Mktyplib.exe-Tool 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 keine Auswirkungen außerhalb des Bibliotheksblocks, es sei denn, das Element, auf das sie angewendet werden, wird innerhalb des Bibliotheksblocks referenziert. Anweisungen innerhalb des Bibliotheksblocks können auf ein externes Element verweisen, indem sie es entweder als Basistyp verwenden, von diesem erben oder wie gezeigt auf eine Zeile verweisen:
<some IDL definitions including definitions for interface IFace and struct bar>
[<some attributes>]
library a
{
interface IFace;
struct this_struct;
...
};
Wenn innerhalb des Bibliotheksblocks auf ein außerhalb des Bibliotheksblocks definiertes Element verwiesen wird, wird dessen Definition in die generierte Typbibliothek eingefügt. Der MIDL-Compiler behandelt die Anweisungen außerhalb eines Bibliotheksblocks als typische IDL-Datei und analysiert diese Anweisungen wie immer. Normalerweise bedeutet dies, dass Stubs in C-Sprache für eine RPC-Anwendung generiert werden.
Weitere Informationen zur allgemeinen Syntax für eine ODL-Datei finden Sie unter ODL-Dateisyntax.