Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto manualmente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

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

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#.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft