Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O mecanismo de depuração deve registar-se como uma fábrica de classe, seguindo as convenções COM, além de se registar com o Visual Studio por meio da subchave de registo 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 ATL COM.
Processo do servidor DLL
Um mecanismo de depuração normalmente é configurado na sua própria DLL como um servidor COM. Como tal, o mecanismo de depuração deve registrar o CLSID da sua respetiva fábrica de classes com COM antes que o Visual Studio possa aceder a ela. Em seguida, o mecanismo de depuração deve registrar-se no Visual Studio para estabelecer quaisquer propriedades (também conhecidas como métricas) suportadas pelo mecanismo de depuração. A escolha das métricas gravadas na subchave do Registro do Visual Studio depende dos recursos suportados pelo mecanismo de depuração.
Os auxiliares do SDK para depuração descrevem não apenas os locais de registro necessários para registrar um mecanismo de depuração; ele também descreve a biblioteca dbgmetric.lib , que contém várias funções e declarações úteis para desenvolvedores 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 mecanismo de depuração mais completo teria uma lista completa de SetMetric chamadas ou seu equivalente, uma para cada recurso suportado pelo mecanismo de depuração.
// 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);
}