IDiaSymbol::get_undecoratedNameEx

检索 C++ 修饰(链接)名的部分或全部未修饰名。

语法

HRESULT get_undecoratedNameEx( 
   DWORD undecorateOptions,
   BSTR* pRetval
);

参数

undecoratedOptions

[in] 指定可控制返回内容的标记的组合。 有关特定值及其功能,请参阅“备注”部分。

pRetVal

[out] 返回 C++ 修饰名的未修饰名。

返回值

如果成功,则返回 S_OK;否则,返回 S_FALSE 或错误代码。

注意

返回值 S_FALSE 意味着该属性对符号不可用。

备注

undecorateOptions 可以是以下标记的组合。

注意

标记名称不是在 DIA SDK 中定义的,因此你需要将声明添加到代码,或者使用原始值。

标志 说明
UNDNAME_COMPLETE 0x0000 启用完全取消修饰。
UNDNAME_NO_LEADING_UNDERSCORES 0x0001 从 Microsoft 扩展关键字中删除前导下划线。
UNDNAME_NO_MS_KEYWORDS 0x0002 禁用 Microsoft 扩展关键字的扩展。
UNDNAME_NO_FUNCTION_RETURNS 0x0004 禁用主声明的返回类型的扩展。
UNDNAME_NO_ALLOCATION_MODEL 0x0008 禁用声明模型的扩展。
UNDNAME_NO_ALLOCATION_LANGUAGE 0x0010 禁用声明语言说明符的扩展。
UNDNAME_RESERVED1 0x0020 已保留。
UNDNAME_RESERVED2 0x0040 已保留。
UNDNAME_NO_THISTYPE 0x0060 禁用 this 类型上的所有修饰符。
UNDNAME_NO_ACCESS_SPECIFIERS 0x0080 禁用成员的访问说明符的扩展。
UNDNAME_NO_THROW_SIGNATURES 0x0100 禁用函数和指向函数的指针的“throw-signatures”扩展。
UNDNAME_NO_MEMBER_TYPE 0x0200 禁用 staticvirtual 成员的扩展。
UNDNAME_NO_RETURN_UDT_MODEL 0x0400 禁用 UDT 返回的 Microsoft 模型的扩展。
UNDNAME_32_BIT_DECODE 0x0800 取消修饰 32 位修饰名。
UNDNAME_NAME_ONLY 0x1000 只获取主声明的名称;只返回 [scope::]name。 展开模板参数。
UNDNAME_TYPE_ONLY 0x2000 输入只是一种类型编码;编写抽象声明符。
UNDNAME_HAVE_PARAMETERS 0x4000 可以使用实际模板参数。
UNDNAME_NO_ECSU 0x8000 取消枚举/类/结构/联合。
UNDNAME_NO_IDENT_CHAR_CHECK 0x10000 禁止检查有效的标识符字符。
UNDNAME_NO_PTR64 0x20000 输出中不包括 ptr64。

另请参阅