rename import 属性

C++ 专用

解决名称冲突问题。

语法

#import 类型库重命名(“OldNameNewName”)

参数

OldName
类型库中的旧名称。

NewName
要替代旧名称使用的名称。

注解

如果指定了 rename 属性,编译器会将 type-library 中的 OldName 的所有匹配项替换为生成的标头文件中的用户提供的 NewName。

当类型库中的名称与系统标头文件中的宏定义一致时,可以使用 rename 属性。 如果未解决这种情况,编译器可能会发出各种语法错误,例如编译器错误 C2059编译器错误 C2061

注意

该替换是针对类型库中使用的名称,而不是针对生成的标头文件中的名称。

例如,假设类型库中存在名为 MyParent 的属性,并且在标头文件中定义了宏 GetMyParent,在 #import 前面使用了该宏。 由于 GetMyParent 是错误处理 get 属性的包装器函数的默认名称,因此会发生名称冲突。 若要解决此问题,请在 #import 语句中使用以下特性:

#import MyTypeLib.tlb rename("MyParent","MyParentX")

该语句对类型库中的名称 MyParent 重命名。 尝试对 GetMyParent 包装器名称重命名将失败:

#import MyTypeLib.tlb rename("GetMyParent","GetMyParentX")

这是因为名称 GetMyParent 仅在生成的类型库标头文件中出现。

END C++ 专用

另请参阅

#import 属性
#import 指令