Inclusion des délégués et des pointeurs fonction non managés dans un wrapper

Le .NET Framework 2.0 et versions ultérieures offre la possibilité de marshaler des pointeurs fonction entre le code managé et non managé à l'aide des méthodes suivantes :

  • Utilisez la méthode Marshal.GetDelegateForFunctionPointer pour marshaler un pointeur fonction non managé dans un délégué. Cette méthode utilise la classe System.IntPtr pour représenter un pointeur fonction non managé.

  • Utilisez la méthode Marshal.GetFunctionPointerForDelegate pour marshaler un délégué dans un pointeur fonction qui peut être appelé à partir de code non managé. Lorsque vous utilisez cette méthode, vous devez empêcher manuellement le délégué d'être récupéré par le garbage collector. Le garbage collector ne suit pas les références au code non managé.

Notez que le marshaleur de paramètres peut également marshaler des pointeurs fonction en délégués dans le .NET Framework 2.0 et versions ultérieures.

Voir aussi

Référence

GetDelegateForFunctionPointer

GetFunctionPointerForDelegate