按用法分的特性

本主题根据应用特性的 C++ 语言元素列出这些特性。

如果特性后面的元素不在特性范围中,则特性块将被视为注释。

Attribute 说明
模块特性 适用于模块特性。
接口特性 适用于 C++ 关键字 __interface
类特性 适用于 C++ 关键字。
方法特性 适用于类、组件类或接口中的方法。
参数特性 适用于类或接口中的方法的参数。
数据成员特性 适用于类、组件类或接口中的数据成员。
Typedef、Enum、Union 和 Struct 特性 适用于 C++ 关键字。
数组特性 适用于数组或 SAFEARRAY
独立特性 操作更类似于代码行,但不对 C++ 关键字进行操作。 独立特性语句需要行末尾有一个分号。
自定义属性 允许用户扩展元数据。

模块特性

以下特性只能应用于模块属性。

Attribute 说明
helpstringdll 指定要用于执行文档字符串查找(本地化)的 DLL 名称。

接口特性

以下特性适用于 C++ 关键字 interface(或 __interface)

Attribute 说明
async_uuid 指定可指示 MIDL 编译器同时定义 COM 接口的同步版本和异步版本的 UUID。
custom 让你定义自己的属性。
dispinterface 将一个接口作为调度接口置于 .idl 文件中。
dual 将一个接口作为 dual 接口置于 .idl 文件中。
export 使数据结构置于 .idl 文件中。
helpcontext 指定允许用户在帮助文件中查看有关此元素的信息的上下文 ID。
帮助文件 设置类型库的帮助文件的名称。
helpstring 指定一个字符串,用于描述应用该字符串的元素。
helpstringcontext 指定 .hlp 或 .chm 文件中帮助主题的 ID。
helpstringdll 指定要用于执行文档字符串查找(本地化)的 DLL 名称。
hidden 指示该项虽然存在,但不应在面向用户的浏览器中显示。
library_block 将构造置于 .idl 文件的库块内。
local 在接口标头中使用时,允许将 MIDL 编译器用作标头生成器。 在单个函数中使用时,指定不为其生成存根的本地过程。
nonextensible 指定 IDispatch 实现仅包含接口说明中列出的属性和方法,并且不能在运行时使用其他成员进行扩展。 此特性仅在双重接口上有效。
odl 将接口标识为对象说明语言 (ODL) 接口。
object 标识自定义接口。
oleautomation 指示接口与自动化兼容。
pointer_default 指定除参数列表中显示的顶级指针以外的所有指针的默认指针属性。
ptr 将指针指定为全指针。
restricted 指定不能随意调用库中的哪些成员。
uuid 提供库的唯一 ID

必须遵循以下规则来定义接口:

  • 默认调用约定是 __stdcall

  • 如果你未提供 GUID,系统将为你提供 GUID。

  • 不允许使用重载方法。

如果未指定 uuid 特性并在不同的特性项目中使用相同的接口名称,则会生成相同的 GUID。

另请参阅

COM 和 .NET 的 C++ 属性
按组分的特性
按字母顺序的特性参考