Condividi tramite


Registrare il modulo di debug personalizzato

Il motore di debug necessario registrarsi come class factory utilizzando le convenzioni nonché il log di COM con Visual Studio con la sottochiave del Registro di sistema di Visual Studio.

Nota

Un esempio di come registrare un modulo di debug è disponibile nell'esempio di TextInterpreter, che viene compilato come parte di Tutorial: Building a Debug Engine Using ATL COM.

processo server di DLL

In genere, un motore di debug è implementata nel proprio DLL come server COM. Ciò significa che il motore di debug necessario registrare il CLSID del relativo class factory tramite COM prima di Visual Studio possa accedervi. Quindi il motore di debug necessario registrarsi con Visual Studio stesso per definire tutte le proprietà (altrimenti noto come metrica) dei supporti di motore di debug. La scelta della metrica scritta la sottochiave del Registro di sistema di Visual Studio per il modulo di debug dipende dalle funzionalità dei supporti di motore di debug.

Supporto di SDK per il debug viene descritto non solo alle posizioni del Registro di sistema necessarie per registrare il modulo di debug; vengono inoltre descritti la libreria di dbgmetric.lib, che contiene una serie di funzioni e dichiarazioni utili per gli sviluppatori di C++ che rendono modificando il Registro di sistema più semplice.

Esempio

Ecco (nell'esempio di TextInterpreter) rappresentazione di esempio tipica come utilizzare la funzione di SetMetric (da dbgmetric.lib), per registrare il modulo di debug con Visual Studio. Le metriche passata è anche definita in dbgmetric.lib.

Nota

TextInterpreter è un motore di debug di base; non fa mezzo-e non fa registro-qualsiasi altre funzionalità.Un più motore di debug completo includerà un intero elenco di chiamate o relativi equivalenti, una di SetMetric per ogni funzionalità dei supporti di motore di debug.

// 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);
}

Vedere anche

Riferimenti

Supporto di SDK per il debug

Altre risorse

creare un motore di debug personalizzato

Tutorial: Building a Debug Engine Using ATL COM