Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Метод CreateTypedObjectReference семантической аналогичен методу CreateTypedObject, за исключением того, что он создает ссылку на базовую конструкцию собственного языка или языка. Созданная ссылка — это объект, имеющий вид ObjectTargetObjectReference. Это не собственная ссылка, так как базовый язык может поддерживаться (например, & C++ или &&). Объект ObjectTargetObjectReference можно получить в ссылке на C++.
Объект типа ObjectTargetObjectReference можно преобразовать в базовое значение с помощью метода dereference в IModelObject. Ссылку также можно передать базовому вычислителю выражений узла, чтобы присвоить значение соответствующему языку.
Синтаксис
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 |