Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Farklı adres türlerini açıklar.
Sözdizimi
Üyeler
dwKind
ADDRESS_KIND numaralandırmasından, birleşimin nasıl yorumlanacağını belirten bir değer.
addr.addrNative
[Yalnızca C++] dwKind = ADDRESS_KIND_NATIVE ise NATIVE_ADDRESS yapısını içerir.
addr.addrThisRel
[Yalnızca C++] dwKind = ADDRESS_KIND_UNMANAGED_THIS_RELATIVE ise UNMANAGED_ADDRESS_THIS_RELATIVE yapısını içerir.
addr.addUPhysical
[Yalnızca C++] dwKind = ADDRESS_KIND_UNMANAGED_PHYSICAL ise UNMANAGED_ADDRESS_PHYSICAL yapısını içerir.
addr.addrMethod
[Yalnızca C++] dwKind = ADDRESS_KIND_METHOD ise METADATA_ADDRESS_METHOD yapısını içerir.
addr.addrField
[Yalnızca C++] dwKind = ADDRESS_KIND_FIELD ise METADATA_ADDRESS_FIELD yapısını içerir.
addr.addrLocal
[Yalnızca C++] dwKind = ADDRESS_KIND_LOCAL ise METADATA_ADDRESS_LOCAL yapısını içerir.
addr.addrParam
[Yalnızca C++] dwKind = ADDRESS_KIND_PARAM ise METADATA_ADDRESS_PARAM yapısını içerir.
addr.addrArrayElem
[Yalnızca C++] dwKind = ADDRESS_KIND_ARRAYELEM ise METADATA_ADDRESS_ARRAYELEM yapısını içerir.
addr.addrRetVal
[Yalnızca C++] dwKind = ADDRESS_KIND_RETVAL ise METADATA_ADDRESS_RETVAL yapısını içerir.
addr.unused
[Yalnızca C++] doldurma.
addr
[Yalnızca C++] Birleşimin adı.
unionmember
[Yalnızca C# ] Bu değerin dwKindtemelinde uygun yapı türüne sıralanması gerekir.
dwKind ile birleşimin yorumlanması arasındaki ilişki için açıklamalar bölümüne bakın.
Açıklamalar
Bu yapı, DEBUG_ADDRESS yapısının bir parçasıdır ve çeşitli adres türlerinden birini temsil eder (DEBUG_ADDRESS yapısı GetAddress yöntemine yapılan çağrıyla doldurulur).
[Yalnızca C# ] Aşağıdaki tabloda, her adres türü için unionmember üyenin nasıl yorumlur olduğu gösterilmektedir. Örnek, bunun bir tür adres için nasıl yapıldığını gösterir.
dwKind |
unionmember olarak yorumlanır |
|---|---|
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 |
Örnek
Bu örnekte, C# dilindeki DEBUG_ADDRESS_UNION yapısının bir tür adresinin (METADATA_ADDRESS_ARRAYELEM) nasıl yorumlur? Kalan öğeler tam olarak aynı şekilde yorumlanabilir.
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));
}
}
}
}
Gereksinim -leri
Üst bilgi: sh.h
Ad Alanı: Microsoft.VisualStudio.Debugger.Interop
Derleme: Microsoft.VisualStudio.Debugger.Interop.dll
Ayrıca bkz.
- Yapıları ve Birleşimleri
- DEBUG_ADDRESS
- ADDRESS_KIND
- GetAddress