사용자 지정 디버그 엔진 등록
디버그 엔진은 COM 규칙에 따라 클래스 팩터리로 등록하고 Visual Studio 레지스트리 하위 키를 통해 Visual Studio에 등록해야 합니다.
참고 항목
자습서: ATL COM을 사용하여 디버그 엔진 빌드의 일부로 빌드된 TextInterpreter 샘플에서 디버그 엔진을 등록하는 방법의 예제를 찾을 수 있습니다.
DLL 서버 프로세스
디버그 엔진은 일반적으로 자체 DLL에서 COM 서버로 설정됩니다. 따라서 디버그 엔진은 클래스 팩터리의 CLSID를 COM에 등록해야 Visual Studio에서 액세스할 수 있습니다. 그런 다음 디버그 엔진은 디버그 엔진이 지원하는 속성(메트릭이라고도 함)을 설정하기 위해 Visual Studio에 자체 등록해야 합니다. Visual Studio 레지스트리 하위 키에 기록된 메트릭의 선택은 디버그 엔진이 지원하는 기능에 따라 다릅니다.
디버깅을 위한 SDK 도우미는 디버그 엔진을 등록하는 데 필요한 레지스트리 위치뿐만 아니라 레지스트리를 더 쉽게 조작할 수 있도록 하는 C++ 개발자를 위한 여러 가지 유용한 함수와 선언이 포함된 dbgmetric.lib 라이브러리에 대해서도 설명합니다.
예시
다음 예제(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);
}