/osf 參數

/osf參數會強制與 OSF DCE 嚴格相容。

midl /osf

切換選項

此參數沒有參數。

備註

如果您的應用程式需要與 OSF DCE 嚴格相容性,基於可攜性考慮,請使用此參數。

/osf 模式中,當您使用完整指標、引數需要記憶體配置,或使用 enable_allocate 屬性時,會自動啟用 RpcSs 套件。 這表示您不需要在用戶端和伺服器應用程式中提供 midl_user_allocatemidl_user_free 函式。

當您使用 /osf 參數編譯時,無法使用下列 Microsoft 擴充功能:

  • 在 IDL 檔案中,抽象宣告子 (未命名的參數) 。
  • COM 物件的介面定義。
  • 具有超過 17 個字元的介面名稱。
  • 僅限 MIDL 的屬性,例如 wire_marshaluser_marshal,以及 typelib (ODL) 延伸模組。
  • 在 IDL 檔案中使用 ACF 關鍵字, (MIDL /app_config 選項) 。
  • 用戶端上的靜態回呼函式。
  • 非同步屬性。
  • cpp_quote#pragma midl_echo
  • wchar_t 寬字元類型、常數和字串。
  • 列舉 初始化 (疏鬆列舉值) 。
  • 僅限輸出大小規格。
  • 混合大小指標和大小陣列。
  • 用於大小和鑒別子規范的運算式。
  • 在引數清單中的任何位置明確處理參數。 在 /osf 模式中,MIDL 編譯器會尋找明確的系結控制碼作為第一個參數。 當第一個參數不是系結控制碼,而且指定了一或多個內容控制碼時,最左邊的內容控制碼會當做系結控制碼使用。 當第一個參數不是控制碼,而且沒有內容控制碼時,程式會使用 ACF 屬性 implicit_handle 或auto_handle隱含 結。
  • 指標屬性類型繼承。 OSF DCE 不允許未設定的指標。 因此,在 /osf 模式中,每個 IDL 檔案都必須為其指標定義屬性。 如果有任何指標沒有明確的屬性,IDL 檔案必須有 pointer_default 規格才能設定指標類型。
  • IDL 檔案中的多個介面。
  • 介面區塊外部的定義。
  • 類型限定詞,例如 farstdcall
  • 省略方向屬性。

當您使用 /osf 參數編譯時,無法使用下列 C/C++ 語言延伸模組:

  • 結構和等位中的位欄位。
  • 以兩個斜線字元分隔的單行批註, (//) 。
  • 外部宣告。
  • 參數清單中的省略號程式。
  • 輸入 int
  • 類型 void * (除了 具有 coNtext_handle 屬性) 。
  • 類型限定詞,包括具有 ANSI 一致性前置詞的表單,包含兩個底線字元:__cdeclcdeclconst、const__exportexport__farfar、__loaddsloadds__nearnear、__pascal、pascal__stdcallstdcall__volatilevolatile
  • 任何 # pragma 警告或 #pragma 批註。
  • 類型序列化。
  • __int3264資料類型。
  • /protocol參數和 ndr64 傳輸語法。

範例

midl /osf filename.idl

midl /osf /app_config filename.idl

另請參閱

一般 MIDL 命令列語法

/app_config

/ms_ext

Rpcss 記憶體管理套件