IDataModelManager3::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<IDataModelManager3> 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 |