共用方式為


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

另請參閱

IDataModelManager 介面