Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Beskriver olika typer av adresser.
Syntax
Medlemmar
dwKind
Ett värde från ADDRESS_KIND uppräkning som anger hur unionen ska tolkas.
addr.addrNative
[Endast C++] Innehåller den NATIVE_ADDRESS strukturen om dwKind = ADDRESS_KIND_NATIVE.
addr.addrThisRel
[Endast C++] Innehåller UNMANAGED_ADDRESS_THIS_RELATIVE struktur om dwKind = ADDRESS_KIND_UNMANAGED_THIS_RELATIVE.
addr.addUPhysical
[Endast C++] Innehåller den UNMANAGED_ADDRESS_PHYSICAL strukturen om dwKind = ADDRESS_KIND_UNMANAGED_PHYSICAL.
addr.addrMethod
[Endast C++] Innehåller den METADATA_ADDRESS_METHOD strukturen om dwKind = ADDRESS_KIND_METHOD.
addr.addrField
[Endast C++] Innehåller den METADATA_ADDRESS_FIELD strukturen om dwKind = ADDRESS_KIND_FIELD.
addr.addrLocal
[Endast C++] Innehåller den METADATA_ADDRESS_LOCAL strukturen om dwKind = ADDRESS_KIND_LOCAL.
addr.addrParam
[Endast C++] Innehåller den METADATA_ADDRESS_PARAM strukturen om dwKind = ADDRESS_KIND_PARAM.
addr.addrArrayElem
[Endast C++] Innehåller den METADATA_ADDRESS_ARRAYELEM strukturen om dwKind = ADDRESS_KIND_ARRAYELEM.
addr.addrRetVal
[Endast C++] Innehåller METADATA_ADDRESS_RETVAL struktur om dwKind = ADDRESS_KIND_RETVAL.
addr.unused
[Endast C++] utfyllnad.
addr
[Endast C++] Namnet på facket.
unionmember
[Endast C#] Det här värdet måste konverteras till lämplig strukturtyp baserat på dwKind. Se Anmärkningar för associationen mellan dwKind och tolkning av facket.
Anmärkningar
Den här strukturen är en del av DEBUG_ADDRESS struktur och representerar en av flera olika typer av adresser (DEBUG_ADDRESS strukturen fylls i av ett anrop till metoden GetAddress).
[Endast C#] Följande tabell visar hur du tolkar unionmember medlem för varje typ av adress. Exemplet visar hur detta görs för en typ av adress.
dwKind |
unionmember tolkas som |
|---|---|
ADDRESS_KIND_NATIVE |
NATIVE_ADDRESS |
ADDRESS_KIND_UNMANAGED_THIS_RELATIVE |
UNMANAGED_ADDRESS_THIS_RELATIVE |
ADDRESS_KIND_UNMANAGED_PHYSICAL |
UNMANAGED_ADDRESS_PHYSICAL |
ADDRESS_KIND_METHOD |
METADATA_ADDRESS_METHOD |
ADDRESS_KIND_FIELD |
METADATA_ADDRESS_FIELD |
ADDRESS_KIND_LOCAL |
METADATA_ADDRESS_LOCAL |
ADDRESS_KIND_PARAM |
METADATA_ADDRESS_PARAM |
ADDRESS_KIND_ARRAYELEM |
METADATA_ADDRESS_ARRAYELEM |
ADDRESS_KIND_RETVAL |
METADATA_ADDRESS_RETVAL |
Exempel
Det här exemplet visar hur du tolkar en typ av adress (METADATA_ADDRESS_ARRAYELEM) för den DEBUG_ADDRESS_UNION strukturen i C#. De återstående elementen kan tolkas på exakt samma sätt.
using System;
using System.Runtime.Interop.Services;
using Microsoft.VisualStudio.Debugger.Interop;
namespace MyPackage
{
public class MyClass
{
public void Interpret(DEBUG_ADDRESS_UNION dau)
{
if (dau.dwKind == (uint)enum_ADDRESS_KIND.ADDRESS_KIND_METADATA_ARRAYELEM)
{
METADATA_ADDRESS_ARRAYELEM arrayElem =
(METADATA_ADDRESS_ARRAYELEM)Marshal.PtrToStructure(dau.unionmember,
typeof(METADATA_ADDRESS_ARRAYELEM));
}
}
}
}
Krav
Rubrik: sh.h
Namnområde: Microsoft.VisualStudio.Debugger.Interop
Sammansättning: Microsoft.VisualStudio.Debugger.Interop.dll