Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
CanonicalizeLocation — это метод, который преобразует заданное расположение в его "каноническое представление", который является выбранной стандартной формой. Он может обрабатывать различные типы расположений, например виртуальную память и регистр, которые можно представить несколькими способами.
Классический пример, в котором эта функция может оказаться полезной, включают средства отладки для Windows (dbgeng), которые исторически подписывают 32-разрядные адреса до 64-разрядных, создавая трудности в представлении и различии определенных областей адресов в высокоуровневых 32-разрядных процессах.
Обратите внимание, что сравнение расположений или адресов, полученных из компонентов, в которых отчет подписывает расширенные адреса с нулевым расширенным, может привести к непредвиденным сбоям. Вы можете избежать таких неудач, вызвав канонизуяLocation() заранее. Помните, что этот метод не преобразует тип расположения. Чтобы преобразовать тип, необходимо вызвать LinearizeLocation().
Синтаксис
HRESULT CanonicalizeLocation(
IDebugHostContext *context,
Location location,
Location *pCanonicalizedLocation
);
Параметры
context
Текущий контекст.
location
Расположение, которое требуется канонизировать.
pCanonicalizedLocation
Указатель на место хранения канонизованного расположения.
Возвращаемое значение
Этот метод возвращает HRESULT, указывающий на успешность или сбой.
Замечания
Хотя этот метод изменяет представление расположения на каноническую форму, он не изменяет фактический тип расположения. Используйте метод LinearizeLocation() для выполнения такого преобразования типов.
Требования
| Требование | Ценность |
|---|---|
| заголовка | dbgmodel.h |