IDataModelManager::CreateTypedObjectReference 方法 (dbgmodel.h)
CreateTypedObjectReference 方法語意上類似於 CreateTypedObject 方法,不同之處在於它會建立基礎原生/語言建構的參考。 建立的參考是一種 ObjectTargetObjectReference 的物件。 它不是原生參考,因為基礎語言可能支援 (例如:C++ & 或 &&) 。 完全可以將 ObjectTargetObjectReference 提供給 C++ 參考。
ObjectTargetObjectReference 類型的物件可以透過 在 IModelObject 上使用 Dereference 方法,轉換為基礎值。 參考也可以傳遞至基礎主機的表達式評估工具,以適當的語言指派給值。
語法
HRESULT CreateTypedObjectReference(
IDebugHostContext *context,
Location objectLocation,
IDebugHostType *objectType,
_COM_Errorptr_ IModelObject **object
);
參數
context
這個物件所在的偵錯主機內容。 如果未指定明確的內容,新建立對象的內容將會繼承自 objectType 自變數的內容。 呼叫端可以傳遞特殊標記值USE_CURRENT_HOST_CONTEXT,以指出對象應該接收調試程式使用者介面中目前的內容。
objectLocation
對象在偵錯目標的位址空間中的位置。 如果位置是虛擬位址,用戶端可以使用64位位移建構位址空間的位置;否則, 位置必須從另一個偵錯主機介面擷取。
objectType
要建構之物件的型別。 如果內容自變數中沒有傳遞明確的內容,則型別的內容會傳播至新建立的物件。
object
此處會傳回新建立的對象參考。
傳回值
這個方法會傳回 HRESULT,指出成功或失敗。
備註
範例程式碼
ComPtr<IDataModelManager> spManager; /* get the data model manager */
ComPtr<IDebugHostType> spType; /* get a type (see CreateTypedObject) */
Location creationLocation; /* get a location (see CreateTypedObject) */
ComPtr<IModelObject> spObjectRef;
if (SUCCEEDED(spManager->CreateTypedObjectReference(nullptr,
creationLocation,
spType.Get(),
&spObjectRef)))
{
// spObjectRef now contains a reference to the underlying object.
// This can be dereferenced to get the value or passed to the
// EE to do an assignment.
ComPtr<IModelObject> spObject;
if (SUCCEEDED(spObjectRef->Dereference(&spObject)))
{
// spObject now contains the object itself.
}
}
規格需求
需求 | 值 |
---|---|
標頭 | dbgmodel.h |