Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mesin debug harus mendaftarkan dirinya sebagai fabrik kelas, mengikuti konvensi COM serta mendaftar dengan Visual Studio melalui sub-kunci registri Visual Studio.
Nota
Anda dapat menemukan contoh cara mendaftarkan mesin debug dalam sampel TextInterpreter, yang dibangun sebagai bagian dari Tutorial: Membangun mesin debug menggunakan ATL COM.
Proses server DLL
Mesin debug biasanya disiapkan di DLL sendiri sebagai server COM. Dengan demikian, mesin debug harus mendaftarkan CLSID pabrik kelas tersebut dengan COM sebelum Visual Studio dapat mengaksesnya. Kemudian, mesin debug harus mendaftarkan dirinya dengan Visual Studio untuk membuat properti apa pun (atau dikenal sebagai metrik) yang didukung mesin debug. Pilihan metrik yang ditulis ke subkuntah registri Visual Studio tergantung pada fitur yang didukung mesin debug.
Pembantu SDK untuk penelusuran kesalahan tidak hanya menjelaskan lokasi registri yang diperlukan untuk mendaftarkan mesin debug; ini juga menjelaskan pustaka dbgmetric.lib , yang berisi sejumlah fungsi dan deklarasi yang berguna untuk pengembang C++ yang membuat manipulasi registri lebih mudah.
Example
Contoh berikut (dari sampel TextInterpreter) menunjukkan cara menggunakan SetMetric fungsi (dari dbgmetric.lib), untuk mendaftarkan mesin debug dengan Visual Studio. Metrik yang diteruskan juga didefinisikan dalam dbgmetric.lib.
Nota
TextInterpreter adalah mesin debug dasar; tidak mengatur—dan karenanya tidak mendaftarkan—fitur lain. Mesin debug yang lebih lengkap akan memiliki seluruh daftar SetMetric panggilan atau yang setara, satu untuk setiap fitur yang didukung mesin 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);
}