/osf 參數
/osf參數會強制與 OSF DCE 嚴格相容。
midl /osf
切換選項
此參數沒有參數。
備註
如果您的應用程式需要與 OSF DCE 嚴格相容性,基於可攜性考慮,請使用此參數。
在 /osf 模式中,當您使用完整指標、引數需要記憶體配置,或使用 enable_allocate 屬性時,會自動啟用 RpcSs 套件。 這表示您不需要在用戶端和伺服器應用程式中提供 midl_user_allocate 和 midl_user_free 函式。
當您使用 /osf 參數編譯時,無法使用下列 Microsoft 擴充功能:
- 在 IDL 檔案中,抽象宣告子 (未命名的參數) 。
- COM 物件的介面定義。
- 具有超過 17 個字元的介面名稱。
- 僅限 MIDL 的屬性,例如 wire_marshal、 user_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 檔案中的多個介面。
- 介面區塊外部的定義。
- 類型限定詞,例如 far 和 stdcall。
- 省略方向屬性。
當您使用 /osf 參數編譯時,無法使用下列 C/C++ 語言延伸模組:
- 結構和等位中的位欄位。
- 以兩個斜線字元分隔的單行批註, (//) 。
- 外部宣告。
- 參數清單中的省略號程式。
- 輸入 int。
- 類型 void * (除了 具有 coNtext_handle 屬性) 。
- 類型限定詞,包括具有 ANSI 一致性前置詞的表單,包含兩個底線字元:__cdecl、cdecl、const、const、__export、export、__far、far、__loadds、loadds、__near、near、__pascal、pascal、__stdcall、stdcall、__volatile和volatile。
- 任何 # pragma 警告或 #pragma 批註。
- 類型序列化。
- __int3264資料類型。
- /protocol參數和 ndr64 傳輸語法。
範例
midl /osf filename.idl
midl /osf /app_config filename.idl
另請參閱