Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O mecanismo de depuração deve se registrar como uma fábrica de classes, seguindo as convenções COM, bem como registrar-se no Visual Studio por meio da subchave do Registro do Visual Studio.
Observação
Você pode encontrar um exemplo de como registrar um mecanismo de depuração no exemplo TextInterpreter, que é criado como parte do Tutorial: Criando um mecanismo de depuração usando o ATL COM.
Processo do servidor DLL
Um mecanismo de depuração normalmente é configurado em sua própria DLL como um servidor COM. Dessa forma, o mecanismo de depuração deve registrar o CLSID de sua fábrica de classes no COM antes que o Visual Studio possa ter acesso a ele. Em seguida, o mecanismo de depuração deve se registrar no Visual Studio para estabelecer quaisquer propriedades (também conhecidas como métricas) que o mecanismo de depuração dá suporte. A escolha das métricas gravadas na subchave do Registro do Visual Studio depende dos recursos que o mecanismo de depuração suporta.
Os auxiliares do SDK para depuração descrevem não apenas os locais de registro necessários para registrar um mecanismo de depuração; também descreve a biblioteca dbgmetric.lib , que contém várias funções e declarações úteis para desenvolvedores do C++ que facilitam a manipulação do registro.
Example
O exemplo a seguir (do exemplo TextInterpreter) mostra como usar a SetMetric função (de dbgmetric.lib) para registrar um mecanismo de depuração com o Visual Studio. As métricas que estão sendo passadas também são definidas em dbgmetric.lib.
Observação
TextInterpreter é um mecanismo de depuração básico; ele não configura — e, portanto, não registra — nenhum outro recurso. Um motor de depuração mais completo teria uma lista inteira de SetMetric chamadas ou seus equivalentes, uma para cada recurso que o motor de depuração suporta.
// 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);
}