Obiekty klienta i silnik

Rozszerzenie EngExtCpp współdziała z aparatem debugera za pośrednictwem obiektu klienta. Wskaźniki interfejsu do obiektu klienta są dostępne dla rozszerzenia za pośrednictwem składowych klasy bazowej ExtExtension . Następujący członkowie umożliwiają dostęp do pierwszej wersji interfejsów API silnika.

Interfejs API silnika Członek ExtExtension

IDebugAdvanced

m_Advanced

IDebugClient

m_Client

IDebugControl

m_Control

IDebugDataSpaces

m_Data

IDebugRegisters

m_Registers

IDebugSymbols

m_Symbols

IDebugSystemObjects

m_System

Następujący członkowie zapewniają dostęp do nowszych wersji interfejsów API silnika. Te interfejsy mogą nie być dostępne we wszystkich wersjach silnika debugera. Jeśli nie są dostępne, każda próba ich użycia spowoduje zgłoszenie wyjątku.

Interfejs API silnika Członek ExtExtension

IDebugAdvanced2

m_Advanced2

IDebugAdvanced3

m_Advanced3

IDebugClient2

m_Client2

IDebugClient3

m_Client3

IDebugClient4

m_Client4

IDebugClient5

m_Client5

IDebugControl2

m_Control2

IDebugControl3

m_Control3

IDebugControl4

m_Control4

IDebugData2

m_Data2

IDebugData3

m_Data3

IDebugData4

m_Data4

IDebugRegisters2

m_Registers2

IDebugSymbols2

m_Symbols2

IDebugSymbols3

m_Symbols3

IDebugSystemObjects2

m_System2

IDebugSystemObjects3

m_System3

IDebugSystemObjects4

m_System4

Członkowie w tych tabelach są inicjowani za każdym razem, gdy biblioteka rozszerzeń jest używana do wykonywania polecenia rozszerzenia lub formatowania struktury wynikowej. Po zakończeniu zadania te elementy są niezainicjowane. W związku z tym rozszerzenia nie powinny buforować wartości tych członów i powinny używać bezpośrednio członków ExtExtension.

Biblioteka rozszerzeń może również tworzyć własne obiekty klienta przy użyciu metody IDebugClient::CreateClient lub funkcji DebugCreate lub DebugConnect.

Aby zapoznać się z omówieniem obiektów klienta, zobacz Client Objects (Obiekty klienta).