匯入檔案和型別程式庫

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

ACF include 指示詞可讓您在 ACF 檔案中指定要包含在 MIDL 產生的存根程式碼中的一或多個 C 語言標頭檔。 產生的檔案會有一行 ,其中包含具有指定標頭檔#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 import 指示詞是將來自其他 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

包括

匯入系統標頭檔