匯入系統頭檔
雖然通常可以在 IDL 檔案中使用 #include 指令來包含標頭檔,但不建議這麼做。 MIDL 編譯程式將會針對所編譯 IDL 檔案中定義的所有函式產生存根。 通常,標頭檔案包含一些您不需要或不想在存根檔中包含的原型,而#include 則有效地將所有這些定義放入您的主要 IDL 檔案中。 此外,如果頭檔中定義了無法回復的類型,IDL 檔案可能無法編譯。
在 IDL 檔案中包含標頭檔案的類型定義有兩種方式:
- 使用 匯入 指令來包含頭檔中定義的資料類型。 不同於 C 語言 #include 指示詞,匯入 指示詞只會挑選類型和常數定義,並忽略程式原型。 只要您的主要 IDL 檔案未參考頭檔中所定義的任何非可變類型,這個方法就能運作。
- 使用包括標頭檔的範例介面建立輔助IDL檔案。 然後,使用 import 指令來包含輔助檔案。 如此一來,只有 typedef會出現在編譯的存根中。 例如:
//in helper.idl:
interface dummy
{
#include "kitchensink.h"
#include "system.h"
}
//in main.idl:
import "helper.idl";