IDebugHostSymbols::CreateModuleSignature 方法 (dbgmodel.h)

CreateModuleSignature 方法创建一个签名,该签名可用于按名称和版本(可选)匹配一组特定模块。 模块签名有三个组件:

  • 名称:匹配模块的名称必须与签名中的名称完全不区分大小写

  • 最低版本:如果指定,匹配的模块必须具有至少与此版本一样高的最低版本。 版本以“A.B.C.D”格式指定,每个后续部分都不像之前部分那么重要。 只有第一个段是必需的。

  • 最大版本:如果指定,匹配的模块必须具有不高于此版本的最大版本。 版本以“A.B.C.D”格式指定,每个后续部分都不像之前部分那么重要。 只有第一个段是必需的。

语法

HRESULT CreateModuleSignature(
  PCWSTR                    pwszModuleName,
  PCWSTR                    pwszMinVersion,
  PCWSTR                    pwszMaxVersion,
  IDebugHostModuleSignature **ppModuleSignature
);

参数

pwszModuleName

模块必须具有的名称,以便匹配签名 (不区分大小写) 。

pwszMinVersion

模块必须具有的最低版本才能匹配签名。 如果此参数为 nullptr,则无需最低版本即可匹配签名。 版本以“A.B.C.D”格式指定为字符串,其中仅需要第一个组件,后续组件不太重要。

pwszMaxVersion

模块为了匹配签名而可以具有的最大版本。 如果此参数为 nullptr,则与签名匹配所需的版本号没有上限。 版本以“A.B.C.D”格式指定为字符串,其中仅需要第一个组件,后续组件不太重要。

ppModuleSignature

此处返回创建的模块签名对象。

返回值

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

注解

示例代码

ComPtr<IDebugHost> spHost; /* get the host */

ComPtr<IDebugHostSymbols> spSym;
if (SUCCEEDED(spHost.As(&spSym)))
{
    ComPtr<IDebugHostModuleSignature> spBasicSignature;
    if (SUCCEEDED(spSym->CreateModuleSignature(
        L"Windows.UI.Xaml.dll", 
        nullptr, 
        nullptr, 
        &spBasicSignature)))
    {
        // spBasicSignature is a signature which will match any module 
        // named "Windows.UI.Xaml.dll" regardless of version.
    }

    ComPtr<IDebugHostModuleSignature> spVersionedSignature;
    if (SUCCEEDED(spSym->CreateModuleSignature(
        L"Windows.UI.Xaml.dll", 
        "6.3", 
        "10.0.0.0", 
        &spVersionedSignature)))
    {
        // spVersionedSignature is a signature which will match a module named
        // "Windows.UI.Xaml.dll" whose version is >= 6.3(.0.0) and whose 
        // version <= 10.0.0.0
    }
}

要求

要求
Header dbgmodel.h

另请参阅

IDebugHostSymbols 接口