共用方式為


註冊自訂偵錯引擎

偵錯引擎必須遵循 COM 慣例,將自身註冊為類別處理站,並透過 Visual Studio 登錄子機碼向 Visual Studio 註冊。

備註

您可以在 TextInterpreter 範例中找到如何註冊偵錯引擎的示例,該範例是教學課程 使用 ATL COM 建置偵錯引擎 的一部分。

DLL 伺服器進程

偵錯引擎通常會在其自己的 DLL 中設定為 COM 伺服器。 因此,偵錯引擎必須先向 COM 註冊其類別處理站的 CLSID,Visual Studio 才能存取它。 然後,偵錯引擎必須向 Visual Studio 註冊本身,以建立偵錯引擎支援的任何屬性 (也稱為計量)。 寫入 Visual Studio 登錄子機碼的指標選擇取決於偵錯引擎所支援的功能。

偵錯的 SDK 協助程式 不僅描述註冊偵錯引擎所需的登錄位置;它也會描述 dbgmetric.lib 程式庫,其中包含許多適用於 C++ 開發人員的實用函式和宣告,讓操作登錄變得更容易。

Example

下列範例 (來自 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);
}