次の方法で共有


カスタム デバッグ エンジンを登録する

デバッグ エンジンは、COM 規則に従って自身をクラス ファクトリとして登録し、Visual Studio レジストリ サブキーを使用して Visual Studio に登録する必要があります。

Note

デバッグ エンジンの登録方法の例は、TextInterpreter サンプルにあります。このサンプルは、「チュートリアル: ATL COM を使用したデバッグ エンジンの構築」の一部として作成されています。

DLL サーバー プロセス

デバッグ エンジンは、通常、それ自体の DLL で COM サーバーとして設定されます。 そのため、デバッグ エンジンは、そのクラス ファクトリの CLSID を COM に登録して、Visual Studio がアクセスできるようにする必要があります。 次に、デバッグ エンジンは、それ自体を Visual Studio に登録して、デバッグ エンジンがサポートするすべてのプロパティ (メトリックとも呼ばれます) を確立する必要があります。 Visual Studio レジストリ サブキーに書き込まれるメトリックの選択は、デバッグ エンジンがサポートする機能によって異なります。

デバッグ用 SDK ヘルパー は、デバッグ エンジンの登録に必要なレジストリの場所だけでなく、dbgmetric.lib ライブラリについても説明します。このライブラリには、レジストリ操作を容易にする、C++ 開発者向けの便利な関数と宣言が数多く含まれています。

次の例 (TextInterpreter サンプルの) では、SetMetric 関数 (dbgmetric.lib の) を使用してデバッグ エンジンを Visual Studio に登録する方法を示しています。 渡されているメトリックは、dbgmetric.lib でも定義されています。

Note

TextInterpreter は、基本的なデバッグ エンジンです。その他の機能を設定しないため、その登録も行いません。 より完全なデバッグ エンジンには、デバッグ エンジンがサポートしている機能ごとに 1 つずつ、すべての 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);
}