共用方式為


使用用戶端物件

如需與偵錯工具引擎互動之用戶端物件角色的概觀,請參閱 用戶端物件

一般而言,用戶端的方法只能從建立用戶端的執行緒呼叫。 一般而言,從錯誤執行緒呼叫的方法將會立即失敗。 此規則值得注意的例外狀況是 CreateClient方法;這個方法可以從任何執行緒呼叫,並傳回新的用戶端,該用戶端可用於呼叫它的執行緒中。 其他例外狀況記載于參考區段中。

描述用戶端物件的字串是由 GetIdentity 方法傳回,或者可以使用 OutputIdentity寫入引擎的輸出資料流程。

COM 介面

偵錯工具引擎 API 包含數個 COM,例如介面;他們會實作 IUnknown 介面。

偵錯 引擎介面 一節中所述的介面是由用戶端實作 (,但不一定是在最新版本) 。 您可以使用 COM 方法 IUnknown::QueryInterface ,從任何其他介面取得這些介面。

用戶端會實作 IUnknown COM 介面,並用它來維護參考計數和介面選取。 不過,用戶端不是已註冊的 COM 物件。 IUnknown::AddRef方法用來遞增物件的參考計數,而IUnknown::Release方法用來遞減參考計數。 呼叫 IUnknown::QueryInterface 時,會遞增參考計數,因此當不再需要用戶端介面指標時,應該呼叫 IUnknown::Release 來遞減參考計數。

使用 DebugCreateDebugConnect建立用戶端物件時,參考計數將會初始化為一個。

如需何時應該遞增和遞減參考計數的詳細資訊,請參閱平臺 SDK。

IUnknown::QueryInterfaceDebugCreateDebugConnect 分別接受介面識別碼作為其其中一個引數。 您可以使用 __uuidof 運算子來取得此介面識別碼。 例如:

IDebugClient * debugClient;
HRESULT Hr = DebugCreate( __uuidof(IDebugClient), (void **)&debugClient );

重要IDebug* 介面,例如 IDebugEventCallbacks介面,雖然 COM 類似,但不是適當的 COM API。 從 Managed 程式碼呼叫這些介面是不支援的案例。 當使用 Managed 程式碼呼叫介面時,垃圾收集和執行緒擁有權等問題會導致系統不穩定。