Fonctions externes (F#)
Cette rubrique décrit la prise en charge de l'appel de fonctions en code natif dans le langage F#.
[<DllImport( arguments )>]
extern declaration
Notes
Dans la syntaxe précédente, arguments représente les arguments fournis à l'attribut DllImportAttribute. Le premier argument est une chaîne qui représente le nom de la DLL qui contient cette fonction, sans l'extension .dll. Des arguments supplémentaires peuvent être fournis pour chacune des propriétés publiques de la classe DllImportAttribute, comme la convention d'appel.
Supposons que vous avez une DLL en C++ natif qui contient la fonction exportée suivante.
#include <stdio.h>
extern "C" void __declspec(dllexport) HelloWorld()
{
printf("Hello world, invoked by F#!\n");
}
Vous pouvez appeler cette fonction à partir de F# en utilisant le code suivant.
open System.Runtime.InteropServices
module InteropWithNative =
[<DllImport(@"C:\bin\nativedll", CallingConvention = CallingConvention.Cdecl)>]
extern void HelloWorld()
InteropWithNative.HelloWorld()
L'interopérabilité avec le code natif est appelée appel de code non managé. Il s'agit d'une fonctionnalité du CLR. Pour plus d’informations, consultez Interopération avec du code non managé. Les informations de cette section s'appliquent à F#.