IDebugHostModule::FindTypeByName 方法 (dbgmodel.h)

FindTypeByName 方法查找模块中由类型名称定义的类型,并为其返回类型符号。 此方法可能会返回一个有效的 IDebugHostType ,该类型永远不会通过模块的子级显式递归返回。 调试主机可能允许创建派生类型 -- 类型从未在模块本身中使用过,但派生自的类型。 例如,如果在模块的符号中定义了 MyStruct 结构,但从未使用过 MyStruct ** 类型,则 FindTypeByName 方法可能会合法地返回 MyStruct ** 的类型符号,尽管该类型名称从未显式出现在模块的符号中。

许多调试主机会显式尝试将传递给 FindTypeByName 方法的类型名称上下文化,并根据语言规则在符号信息中查找匹配类型,而不是与符号名称进行原始比较。 如果调试主机无法执行此操作,它将回退到与符号名称的原始比较。

语法

HRESULT FindTypeByName(
  PCWSTR         typeName,
  IDebugHostType **type
);

参数

typeName

在模块的符号信息中查找的语言类型。 类型也可以派生自 (例如:是指向 的指针或) 模块的符号信息中找到的类型的数组。

type

此处将返回找到的类型的类型符号。

返回值

此方法返回指示成功或失败的 HRESULT。

注解

示例代码

ComPtr<IDebugHostModule> spModule; /* get a module (see FindModuleByName) */

// Find "MyStruct **".  Note that only "MyStruct" might be in the symbols
ComPtr<IDebugHostType> spType;
if (SUCCEEDED(spModule->FindTypeByName(L"MyStruct **", &spType)))
{
    // spType contains a type symbol for "MyStruct **"
}

要求

要求
Header dbgmodel.h

另请参阅

IDebugHostModule 接口