rename import 属性
C++ 专用
解决名称冲突问题。
语法
#import 类型库重命名(“OldName”、“NewName”)
参数
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++ 专用