enregistrer un moteur de débogage personnalisé
Le moteur de débogage doit enregistrer une fabrique de classe suivant les conventions ainsi que le registre de COM avec Visual Studio à la sous-clé de Registre de Visual Studio.
Notes
Un exemple de stockage un moteur de débogage peut être récupéré dans l'exemple de TextInterpreter, qui est généré dans le cadre de Tutorial: Building a Debug Engine Using ATL COM.
processus de serveur de DLL
en général, un moteur de débogage est implémenté dans son propre DLL en tant que serveur COM. Cela signifie que le moteur de débogage doit stocker le CLSID de sa fabrique de classe avec COM avant que Visual Studio puisse y accéder. Le moteur de débogage doit s'inscrire dans Visual Studio lui-même pour générer toutes les propriétés (sinon appelées " métriques) les installations de moteur de débogage. Le choix des métriques qui sont écrites dans la sous-clé de Registre de Visual Studio pour le moteur de débogage dépend des fonctionnalités les installations de moteur de débogage.
Programmes d'assistance du Kit de développement logiciel pour le débogage décrit pas uniquement les emplacements de registres nécessaires pour stocker un moteur de débogage ; elle décrit également la bibliothèque de dbgmetric.lib, contenant des fonctions et des déclarations utiles pour les développeurs C++ qui facilitent la manipulation du Registre.
Exemple
Voici un exemple classique (de l'exemple de TextInterpreter) montrant comment utiliser la fonction d' SetMetric (dbgmetric.lib), pour stocker un moteur de débogage avec Visual Studio. La métrique passé est également définie dans dbgmetric.lib.
Notes
TextInterpreter est un moteur de débogage de squelette ambulant ; ce n'est pas instrument-et ne fait donc pas registre-toutes autres fonctionnalités.Un plus moteur de débogage complet aurait une liste complète des appels d' SetMetric ou leur équivalent, un pour chaque fonctionnalité les installations de moteur de débogage.
// 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);
}
Voir aussi
Référence
Programmes d'assistance du Kit de développement logiciel pour le débogage