共用方式為


使用 MIDL

使用 RPC 之程式的所有介面都必須在 Microsoft 介面定義語言 (MIDL) 中定義,並使用 MIDL 編譯程式編譯。 下列主題提供建立和編譯 MIDL 介面的簡短概觀:

如需這些主題的詳細討論,請參閱 IDL 和 ACF 檔案

使用 MIDL 定義介面

MIDL 檔案是您可以使用文字編輯器建立和編輯的文字檔。 如果您為介面產生 UUID,您通常會將輸出儲存在範本 MIDL 檔案中。 如需 UUID 的詳細資訊,請參閱 產生介面 UUID

MIDL 中的所有介面都遵循相同的格式。 其開頭是包含介面屬性清單和介面名稱的標頭。 屬性會以方括弧括住。 介面標頭後面接著以大括弧括住的主體。 下列範例顯示簡單的介面:

[
  uuid(ba209999-0c6c-11d2-97cf-00c04f8eea45),
  version(1.0)
]
interface MyInterface
{
  const unsigned short INT_ARRAY_LEN = 100;

  void MyRemoteProc( 
      [in] int param1,
      [out] int outArray[INT_ARRAY_LEN]
  );
}

一些通常出現在 MIDL 介面定義中的屬性是 UUID 和介面版本號碼。 介面定義的主體必須包含介面中所有遠端程式的程式宣告。 它也可以包含介面所需的數據類型和常數宣告。

遠端程式宣告中的所有參數都必須宣告為 [] 中的 []、[out],或 [inout]。 這些宣告會指定用戶端程式將數據傳遞至遠端程式、從遠端程式取得數據,或兩者皆傳出。 如需有關介面參數定義的詳細資訊,請參閱 IDL 介面的本文

編譯 MIDL 檔案

MIDL 編譯程式是一種命令行工具,其會自動隨平臺軟體開發工具包 (SDK) 一起安裝。 在命令視窗中輸入命令 midl,然後在命令列後輸入 MIDL 檔案的名稱以叫用它。 請確定包含 MIDL 編譯程式的目錄位於您的路徑中。 下列範例說明其用法:

midl MyApp.idl

請注意,如果檔名具有 .idl 擴展名,則不需要包含擴展名。 您也可以將 MIDL 編譯器的 命令行引數 插入在 midl 命令和文件名之間。 下列範例會示範這一點:

midl /acf MyApp.acf MyApp.idl

在此範例中,MIDL 編譯程式會使用 MyApp.idl 檔案作為輸入檔來執行。 命令行參數 /acf 指示編譯程式也使用應用程式組態檔 (ACF) 進行輸入。 IDL 和 ACF 檔案中,會更徹底地討論應用程式組態檔。

如需使用 MIDL 編譯程式的詳細資訊,請參閱 Microsoft 介面定義語言 (MIDL),其中包含下列主題的相關信息: