匯入檔案和類型程式庫

MIDL 關鍵字 包括入和 importlib ,可讓您參考現有的標頭、IDL 和物件定義語言, (ODL) 檔案和編譯的型別程式庫來重複使用程式碼。

ACF include 指示詞可讓您在 ACF 檔案中指定一或多個 C 語言標頭檔,以包含在 MIDL 產生的存根程式碼中。 產生的檔案會有一行,其中包含 具有#include C 預處理器指示詞的行,其中包含指定的標頭檔。 使用此 include 指示詞來帶入特定作業環境特定的標頭檔,且不包含用戶端與伺服器之間介面所需的資訊。 請勿將 include 用於標頭檔案,其中包含您想要用於 IDL 檔案的資料類型;請改用 import 指示詞。

範例 1

[
  auto_handle
] 
interface X86PC
{ 
  include "gendefs.h", "protos.h", "myfile.h"; 
  //interface typdefs and function declarations here
}

IDL 入指示詞是將其他 IDL (或 ODL) 檔案和標頭檔帶入 IDL 檔案中的類型和介面定義的標準方法。 匯入檔案中的所有 IDL 語句,例如 typedefs、 const 宣告和介面定義都可供匯入 IDL 檔案使用。

如同 C 語言預處理器指示詞 #includeimport 指示詞會指示編譯器包含匯入 IDL 檔案中定義的資料類型。 不同于 #include 指示詞, import 指示詞會忽略程式原型,因為不會針對匯入的檔案中的任何專案產生存根。 由於預處理器會針對匯入的檔案個別叫用,因此預處理器指示詞 (例如 **) 不會繼續傳送至匯入 IDL 檔案。

如需使用 import 在 IDL 檔案中包含系統標頭檔的其他資訊,請參閱 匯入系統標頭檔

範例 2

[
  uuid(. . .), object
] 
interface IKnown : IUnknown
{
  import "base.idl", "unknwn.idl", "helper.idl";
  //remainder of interface definition
}

ODL importlib 指示詞可讓您參考 IDL 或 ODL 檔案中的已編譯類型程式庫。 importlib指示詞必須位於程式庫語句內,而且必須在程式庫中的其他類型描述前面。 匯入的程式庫以及產生的程式庫,在執行時間必須可供應用程式使用。

範例 3

library NewBrowser
{
  importlib("stdole32.tlb");
  importlib("legacy.tlb");
  //remainder of library definition
};

您也可以使用 C 預處理器 #include 指示詞,在 IDL 或 ODL 檔案中包含標頭和其他檔案。 不過請注意,這個指示詞會常包含指定檔案的整個內容。 如果標頭檔包含您在 MIDL 產生的存根檔案中不需要或想要的原型,或者如果它包含不可復原的類型定義,您應該使用 MIDL import 指示詞,而不是 #include 指示詞。

進口

importlib

include

匯入系統標頭檔