使用 MIDL 產生類型程式庫

ODL 語法的最上層元素是程式庫語句, (程式庫區塊) 。 除了套用至程式庫語句的屬性之外,每個 ODL 語句都必須定義在程式庫區塊內。 當 MIDL 編譯器看到程式庫區塊時,它會產生與 MkTypLib 完全相同的類型程式庫。 有一些例外狀況,如 MIDL 與 MKTYPLIB 之間的差異中所述,程式庫區塊內的 語句應該遵循與 ODL 語言和 MkTypLib 相同的語法。

注意

Mktyplib.exe工具已過時。 請改用 MIDL 編譯器。

 

您可以將 ODL 屬性套用至程式庫區塊內部或外部定義的專案。 除非從程式庫區塊中參考套用至的專案,否則這些屬性在程式庫區塊之外沒有任何作用。 程式庫區塊內的語句可以參考專用項目,方法是使用它做為基底類型、繼承自它,或藉由在行上參考它,如下所示:

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

如果在程式庫區塊內參考程式庫區塊外部定義的專案,則其定義會放入產生的類型程式庫中。 MIDL 編譯器會將程式庫區塊以外的語句視為一般 IDL 檔案,並剖析這些語句一律已完成。 一般而言,這表示產生 RPC 應用程式的 C 語言存根。

如需 ODL 檔案一般語法的詳細資訊,請參閱 ODL 檔案語法