Génération d’une bibliothèque de types avec MIDL
L’élément de niveau supérieur de la syntaxe ODL est l’instruction library (bloc de bibliothèque). Toutes les autres instructions ODL, à l’exception des attributs appliqués à l’instruction library, doivent être définies dans le bloc de bibliothèque. Lorsque le compilateur MIDL voit un bloc de bibliothèque, il génère une bibliothèque de types de la même manière que MkTypLib. À quelques exceptions près, décrites dans Différences entre MIDL et MKTYPLIB, les instructions du bloc de bibliothèque doivent suivre la même syntaxe que dans le langage ODL et MkTypLib.
Notes
L’outil Mktyplib.exe est obsolète. Utilisez le compilateur MIDL à la place.
Vous pouvez appliquer des attributs ODL aux éléments définis à l’intérieur ou à l’extérieur du bloc de bibliothèque. Ces attributs n’ont aucun effet en dehors du bloc de bibliothèque, sauf si l’élément auquel ils sont appliqués est référencé à partir du bloc de bibliothèque. Les instructions à l’intérieur du bloc de bibliothèque peuvent référencer un élément externe en l’utilisant comme type de base, en hériter ou en le référençant sur une ligne comme indiqué :
<some IDL definitions including definitions for interface IFace and struct bar>
[<some attributes>]
library a
{
interface IFace;
struct this_struct;
...
};
Si un élément défini en dehors du bloc de bibliothèque est référencé dans le bloc de bibliothèque, sa définition est placée dans la bibliothèque de types générée. Le compilateur MIDL traite les instructions en dehors d’un bloc de bibliothèque comme un fichier IDL classique et analyse ces instructions comme il l’a toujours fait. Normalement, cela signifie générer des stubs en langage C pour une application RPC.
Pour plus d’informations sur la syntaxe générale d’un fichier ODL, consultez Syntaxe de fichier ODL.