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 兼容模式下生成服务器存根时,无法应用它。