Marshal.GetDelegateForFunctionPointer Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
GetDelegateForFunctionPointer(IntPtr, Type) |
Obsolète.
Convertit un pointeur fonction non managé en un délégué. |
GetDelegateForFunctionPointer<TDelegate>(IntPtr) |
Convertit un pointeur fonction non managé en un délégué d'un type spécifié. |
GetDelegateForFunctionPointer(IntPtr, Type)
- Source:
- Marshal.cs
- Source:
- Marshal.cs
- Source:
- Marshal.cs
Attention
GetDelegateForFunctionPointer(IntPtr, Type) may be unavailable in future releases. Instead, use GetDelegateForFunctionPointer<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296521
Convertit un pointeur fonction non managé en un délégué.
public:
static Delegate ^ GetDelegateForFunctionPointer(IntPtr ptr, Type ^ t);
[System.Obsolete("GetDelegateForFunctionPointer(IntPtr, Type) may be unavailable in future releases. Instead, use GetDelegateForFunctionPointer<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296521")]
[System.Security.SecurityCritical]
public static Delegate GetDelegateForFunctionPointer (IntPtr ptr, Type t);
public static Delegate GetDelegateForFunctionPointer (IntPtr ptr, Type t);
[System.Security.SecurityCritical]
public static Delegate GetDelegateForFunctionPointer (IntPtr ptr, Type t);
[<System.Obsolete("GetDelegateForFunctionPointer(IntPtr, Type) may be unavailable in future releases. Instead, use GetDelegateForFunctionPointer<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296521")>]
[<System.Security.SecurityCritical>]
static member GetDelegateForFunctionPointer : nativeint * Type -> Delegate
static member GetDelegateForFunctionPointer : nativeint * Type -> Delegate
[<System.Security.SecurityCritical>]
static member GetDelegateForFunctionPointer : nativeint * Type -> Delegate
Public Shared Function GetDelegateForFunctionPointer (ptr As IntPtr, t As Type) As Delegate
Paramètres
- ptr
-
IntPtr
nativeint
Pointeur vers la fonction non managée à convertir.
- t
- Type
Type du délégué à retourner.
Retours
Instance de délégué qui peut être castée en type délégué approprié.
- Attributs
Exceptions
Le paramètre t
n'est pas un délégué ou est générique.
Remarques
Vous pouvez utiliser les GetDelegateForFunctionPointer méthodes et GetFunctionPointerForDelegate pour marshaler les délégués dans les deux directions. Avec GetDelegateForFunctionPointer, ptr
est importé en tant que System.IntPtr. Un System.IntPtr peut être obtenu pour un délégué managé en appelant GetFunctionPointerForDelegate et passé en tant que paramètre ; il peut ensuite être appelé à partir de l’intérieur de la méthode non managée. Notez que le marshaleur de paramètres peut également marshaler des pointeurs de fonction vers des délégués dans .NET Framework 2.0 et versions ultérieures.
ptr
est converti en délégué qui appelle la méthode non managée à l’aide de la convention d’appel de plateforme par défaut. Vous pouvez définir la convention d’appel en appliquant au UnmanagedFunctionPointerAttribute délégué.
La GetDelegateForFunctionPointer méthode présente les restrictions suivantes :
Les génériques ne sont pas pris en charge dans les scénarios d’interopérabilité.
Vous pouvez utiliser cette méthode uniquement pour les pointeurs de fonction non managés purs.
Vous ne pouvez pas utiliser cette méthode avec des pointeurs de fonction obtenus via C++.
S’applique à
GetDelegateForFunctionPointer<TDelegate>(IntPtr)
- Source:
- Marshal.cs
- Source:
- Marshal.cs
- Source:
- Marshal.cs
Convertit un pointeur fonction non managé en un délégué d'un type spécifié.
public:
generic <typename TDelegate>
static TDelegate GetDelegateForFunctionPointer(IntPtr ptr);
[System.Security.SecurityCritical]
public static TDelegate GetDelegateForFunctionPointer<TDelegate> (IntPtr ptr);
public static TDelegate GetDelegateForFunctionPointer<TDelegate> (IntPtr ptr);
[<System.Security.SecurityCritical>]
static member GetDelegateForFunctionPointer : nativeint -> 'Delegate
static member GetDelegateForFunctionPointer : nativeint -> 'Delegate
Public Shared Function GetDelegateForFunctionPointer(Of TDelegate) (ptr As IntPtr) As TDelegate
Paramètres de type
- TDelegate
Type de délégué à retourner.
Paramètres
- ptr
-
IntPtr
nativeint
Pointeur vers la fonction non managée à convertir.
Retours
Instance du type délégué spécifié.
- Attributs
Exceptions
Le paramètre générique TDelegate
n'est pas un délégué ou il s'agit d'un type générique ouvert.
Le paramètre ptr
a la valeur null
.
Remarques
Vous pouvez utiliser les GetDelegateForFunctionPointer<TDelegate>(IntPtr) méthodes et GetFunctionPointerForDelegate<TDelegate>(TDelegate) pour marshaler les délégués dans les deux directions.
ptr
est converti en délégué qui appelle la méthode non managée à l’aide de la convention d’appel de plateforme par défaut. Vous pouvez définir la convention d’appel en appliquant au UnmanagedFunctionPointerAttribute délégué.
La GetDelegateForFunctionPointer<TDelegate>(IntPtr) méthode présente les restrictions suivantes :
Les génériques ne sont pas pris en charge dans les scénarios d’interopérabilité.
Vous pouvez utiliser cette méthode uniquement pour les pointeurs de fonction non managés purs.
Vous ne pouvez pas utiliser cette méthode avec des pointeurs de fonction obtenus via C++.