CanonicalizeLocation 是一種方法,可將指定位置轉換成其「標準表示法」,這是選擇的標準形式。 它可以處理不同類型的位置,例如虛擬記憶體和緩存器,可以透過數種方式表示。
此函式可能很有幫助的傳統範例涉及 Windows 偵錯工具(dbgeng),該偵錯工具會從歷史上將 32 位位址擴充至 64 位,以在高位址感知 32 位進程中呈現和區分特定地址區域時產生困難。
請注意,比較從元件取得的位置或地址,這些元件會針對零個擴充位址報告擴充位址,可能會導致無法預見的失敗。 您可以事先呼叫 CanonicalizeLocation() 來逃避這種錯誤。 請記住,此方法不會轉換位置的類型。 若要轉換類型,您應該呼叫 LinearizeLocation()。
語法
HRESULT CanonicalizeLocation(
IDebugHostContext *context,
Location location,
Location *pCanonicalizedLocation
);
參數
context
目前的內容。
location
您想要正式化的位置。
pCanonicalizedLocation
將儲存標準位置的指標。
傳回值
此方法會傳回 HRESULT,指出成功或失敗。
言論
雖然這個方法會將位置的表示法變更為其標準形式,但不會改變位置的實際類型。 使用 LinearizeLocation() 方法 來執行這類類型轉換。
要求
| 要求 | 價值 |
|---|---|
| 標頭 | dbgmodel.h |