Condividi tramite


Funzioni esterne (F#)

In questo argomento viene descritto il supporto del linguaggio F# per la chiamata di funzioni nel codice nativo.

[<DllImport( arguments )>]
extern declaration

Note

Nella sintassi precedente arguments rappresenta gli argomenti forniti all'attributo DllImportAttribute.Il primo argomento è una stringa che rappresenta il nome della DLL che contiene questa funzione, senza l'estensione dll.È possibile fornire argomenti aggiuntivi per qualsiasi proprietà pubblica della classe DllImportAttribute, ad esempio la convenzione di chiamata.

Si presupponga di disporre di una DLL C++ nativa contenente la funzione esportata seguente:

#include <stdio.h>
extern "C" void __declspec(dllexport) HelloWorld()
{
    printf("Hello world, invoked by F#!\n");
}

È possibile chiamare questa funzione da F# utilizzando il codice seguente:

open System.Runtime.InteropServices

module InteropWithNative =
    [<DllImport(@"C:\bin\nativedll", CallingConvention = CallingConvention.Cdecl)>]
    extern void HelloWorld()

InteropWithNative.HelloWorld()

L'interoperabilità con il codice nativo viene definita platform invoke ed è una funzionalità di CLR.Per ulteriori informazioni, vedere Interoperabilità con codice non gestito.Le informazioni in questa sezione si applicano a F#.

Vedere anche

Riferimenti

Funzioni (F#)