nocode 屬性
[nocode]屬性用於 ACF 標頭或個別函式,以防止產生用戶端存根程式碼。
[
nocode
[ , ACF-interface-attributes ]
]
interface interface-name
{
[ include filename-list ; ]
[ typedef [type-attribute-list] typename; ]
[ [ nocode [ , ACF-function-attributes ] ] function-name (
[ ACF-parameter-attributes ] parameter-name ;
...);
]
...
}
-
ACF-interface-attributes
-
指定套用至介面整體的一或多個屬性清單。 有效的屬性包括[auto_handle]或[implicit_handle]和[code]或[nocode]。 出現兩個或多個介面屬性時,它們必須以逗號分隔。
-
interface-name
-
指定介面的名稱。 在 DCE 相容性模式中,介面名稱必須符合 IDL 檔案中指定的介面名稱。 當您使用 MIDL 編譯器參數 /acf時,ACF 中的介面名稱和 IDL 檔案中的介面名稱可能不同。
-
filename-list
-
指定一或多個 C 語言標頭檔名稱的清單,並以逗號分隔。 必須提供完整的檔案名,包括副檔名。
-
type-attribute-list
-
指定套用至指定型別的一或多個屬性清單,並以逗號分隔。 有效的類型屬性包括 [allocate]。
-
typename
-
指定 IDL 檔案中定義的類型。 ACF 中的類型屬性只能套用至先前在 IDL 檔案中定義的類型。
-
ACF-function-attributes
-
指定套用至整個函式的屬性,例如[comm_status]。 函式屬性會以方括弧括住。 以逗號分隔多個函式屬性。
-
function-name
-
指定 IDL 檔案中所定義的函式名稱。
-
ACF-parameter-attributes
-
指定套用至參數的 ACF 屬性。 請注意,零個或多個屬性可以套用至 參數。 以逗號分隔多個參數屬性。 ACF 參數屬性會以方括弧括住。
-
parameter-name
-
指定 IDL 檔案中所定義之函式的參數。 函式的每個參數都必須以相同的順序指定,並使用與 IDL 檔案中所定義的相同名稱。
[nocode]屬性可以出現在 ACF 標頭中,也可以套用至個別函式。
當 [nocode] 屬性出現在 ACF 標頭中時,除非用戶端存根程式碼具有 [code] 函式屬性,否則不會為任何遠端函式產生用戶端存根程式碼。 您可以將[code]屬性指定為函式屬性,以覆寫個別函式標頭中的[nocode]屬性。
當 [nocode] 屬性出現在函式的屬性清單中時,不會為函式產生任何用戶端存根程式碼。
用戶端存根程式碼不會在以下情況下產生:
- ACF 標頭包含 [nocode] 屬性。
- [nocode]屬性會套用至 函式。
- [local]屬性會套用至介面檔案中的 函式。
[code]或[nocode]可以出現在函式的屬性清單中,而您選擇的屬性清單可以完全顯示一次。
產生伺服器存根時,會忽略 [nocode] 屬性。 在 DCE 相容性模式中產生伺服器存根時,您無法套用它。