注册自定义调试引擎

调试引擎必须具有 Visual Studio 注册为类工厂。 COM 约定后以及注册通过 Visual Studio 注册表子项。

备注

示例的注册调试引擎如何在 TextInterpreter 示例中,为 Tutorial: Building a Debug Engine Using ATL COM一部分,编译。

DLL 服务器进程

通常,调试引擎在其自己的 DLL 中实现为 COM 服务器。 这意味着调试引擎必须注册其具有 COM 的类工厂 CLSID,在 Visual Studio 访问它。 然后调试引擎必须具有 Visual Studio 注册以便建立所有属性 (也称为度量) 调试引擎。 给 Visual Studio 注册表子项是针对编写的调试引擎指标的选择取决于调试引擎支持的功能。

调试的 SDK 帮助器 不仅描述注册表位置需要注册调试引擎;它还描述 dbgmetric.lib 库,包含许多有用的功能和说明 C++ 开发人员可操作注册表更加轻松。

示例

下面是 (从 TextInterpreter 示例) 演示如何的典型示例使用 SetMetric 函数 (从 dbgmetric.lib),以注册了 Visual Studio 的调试引擎。 通过的指标在 dbgmetric.lib 还定义。

备注

TextInterpreter 是瘦骨嶙峋的人调试引擎;因此不实现和不注册任何其他功能。更完整的调试引擎会使整个列表 SetMetric 调用或其等效项,一调试引擎支持的每个函数的。

// Define base registry subkey to Visual Studio.
static const WCHAR strRegistrationRoot[] = L"Software\\Microsoft\\VisualStudio\\8.0";

HRESULT CTextInterpreterModule::RegisterServer(BOOL bRegTypeLib, const CLSID * pCLSID)
{
    SetMetric(metrictypeEngine, __uuidof(Engine), metricName, L"Text File", false, strRegistrationRoot);
    SetMetric(metrictypeEngine, __uuidof(Engine), metricCLSID, CLSID_Engine, false, strRegistrationRoot);
    SetMetric(metrictypeEngine, __uuidof(Engine), metricProgramProvider, CLSID_MsProgramProvider, false, strRegistrationRoot);
   
    return base::RegisterServer(bRegTypeLib, pCLSID);
}

请参见

参考

调试的 SDK 帮助器

其他资源

创建自定义调试引擎

Tutorial: Building a Debug Engine Using ATL COM