Freigeben über


UnmanagedCallConvAttribute Klasse

Definition

Gibt die Aufrufkonvention an, die zum Aufrufen von P/Invoke-Methoden erforderlich ist, die in nicht verwaltetem Code implementiert sind.

public ref class UnmanagedCallConvAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)]
public sealed class UnmanagedCallConvAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)>]
type UnmanagedCallConvAttribute = class
    inherit Attribute
Public NotInheritable Class UnmanagedCallConvAttribute
Inherits Attribute
Vererbung
UnmanagedCallConvAttribute
Attribute

Beispiele

Die folgenden Beispiele deklarieren P/Invokes mithilfe von UnmanagedCallConvAttribute , um die Aufrufende Konvention anzugeben.

Verwenden der cdecl Aufrufkonvention:

// Target will be invoked using the cdecl calling convention
[UnmanagedCallConv(CallConvs = new Type[] { typeof(CallConvCdecl) })]
[DllImport("NativeLibrary", EntryPoint = "native_function_cdecl")]
internal static extern int NativeFunction(int arg);

// Target will be invoked using the cdecl calling convention and with the GC transition suppressed
[UnmanagedCallConv(CallConvs = new Type[] { typeof(CallConvCdecl), typeof(CallConvSuppressGCTransition) })]
[DllImport("NativeLibrary", EntryPoint = "native_function_cdecl")]
internal static extern int NativeFunction_NoGCTransition(int arg);

Verwenden der stdcall Aufrufkonvention:

// Target will be invoked using the stdcall calling convention
[UnmanagedCallConv(CallConvs = new Type[] { typeof(CallConvStdcall) })]
[DllImport("NativeLibrary", EntryPoint = "native_function_stdcall")]
internal static extern int NativeFunction(int arg);

// Target will be invoked using the stdcall calling convention and with the GC transition suppressed
[UnmanagedCallConv(CallConvs = new Type[] { typeof(CallConvStdcall), typeof(CallConvSuppressGCTransition) })]
[DllImport("NativeLibrary", EntryPoint = "native_function_stdcall")]
internal static extern int NativeFunction_NoGCTransition(int arg);

Hinweise

Wenn dieses Attribut auf eine Methode angewendet wird, bei DllImportAttribute der CallingConvention entweder nicht festgelegt oder auf Winapifestgelegt ist, verwendet CallConvs die .NET-Runtime, um die Aufrufkonvention des P/Invoke zu bestimmen.

Dieses Attribut wird ignoriert, wenn es auf eine Methode ohne DllImportAttribute oder mit CallingConvention festgelegtem Wert auf etwas anderes als Winapiangewendet wird.

Konstruktoren

UnmanagedCallConvAttribute()

Initialisiert eine neue Instanz von UnmanagedCallConvAttribute.

Felder

CallConvs

Dies ist optional. Typen, die Aufrufkonventionen für das nicht verwaltete Ziel angeben.

Eigenschaften

TypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.

(Geerbt von Attribute)

Methoden

Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.

(Geerbt von Attribute)
GetHashCode()

Gibt den Hashcode für diese Instanz zurück.

(Geerbt von Attribute)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.

(Geerbt von Attribute)
Match(Object)

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für: