Condividi tramite


Generazione di una libreria di tipi con MIDL

L'elemento di primo livello della sintassi ODL è l'istruzione di libreria (blocco di libreria). Ogni altra istruzione ODL, ad eccezione degli attributi applicati all'istruzione libreria, deve essere definita all'interno del blocco di libreria. Quando il compilatore MIDL vede un blocco di librerie, genera una libreria di tipi nello stesso modo in cui MkTypLib esegue. Con alcune eccezioni, descritte in Differenze tra MIDL e MKTYPLIB, le istruzioni all'interno del blocco di libreria devono seguire la stessa sintassi del linguaggio ODL e MkTypLib.

Nota

Lo strumento Mktyplib.exe è obsoleto. Usare invece il compilatore MIDL.

 

È possibile applicare attributi ODL agli elementi definiti all'interno o all'esterno del blocco di libreria. Questi attributi non hanno alcun effetto all'esterno del blocco di libreria, a meno che l'elemento a cui vengono applicati venga fatto riferimento dall'interno del blocco di libreria. Le istruzioni all'interno del blocco di libreria possono fare riferimento a un elemento esterno usandolo come tipo di base, ereditandolo o facendo riferimento a esso in una riga, come illustrato di seguito:

<some IDL definitions including definitions for interface IFace and struct bar>
[<some attributes>]
library a
{
    interface IFace;
    struct this_struct;
...
};

Se un elemento definito all'esterno del blocco di libreria viene fatto riferimento all'interno del blocco di libreria, la relativa definizione verrà inserita nella libreria dei tipi generata. Il compilatore MIDL considera le istruzioni all'esterno di un blocco di libreria come un file IDL tipico e analizza tali istruzioni man mano che è sempre stata eseguita. In genere, ciò significa generare stub del linguaggio C per un'applicazione RPC.

Per altre informazioni sulla sintassi generale per un file ODL, vedere Sintassi file ODL.