Регистрация пользовательского модуля отладки
Отладчик должен зарегистрировать в качестве соглашения, так же как регистрация фабрики класса COM следует с помощью Visual Studio с помощью подраздел реестра Visual Studio.
Примечание
Примере показано, как зарегистрировать обработчик отладки можно найти в образце TextInterpreter, которая построена как часть Учебник. Создание обработчика отладка с использованием модели COM библиотеки ATL.
Серверный процесс библиотеки DLL
Обычно обработчик отладки реализован в собственном библиотеку DLL как сервер модели COM. Это означает, что отладчик должен зарегистрировать его с идентификатором CLSID фабрики класса COM, прежде чем 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 для отладки