Funções externas (F#)
Este tópico descreve o suporte para idiomas F# para chamar funções em código nativo.
[<DllImport( arguments )>]
extern declaration
Comentários
Na sintaxe anterior, arguments representa os argumentos que são fornecidos para o DllImportAttribute atributo. O primeiro argumento é uma seqüência de caracteres que representa o nome da DLL que contém essa função, sem a extensão. dll. Argumentos adicionais podem ser fornecidos para qualquer uma das propriedades públicas da DllImportAttribute classe, como, por exemplo, a convenção de chamada.
Suponha que você possua um nativo C++ DLL que contém a seguinte função exportada.
#include <stdio.h>
extern "C" void __declspec(dllexport) HelloWorld()
{
printf("Hello world, invoked by F#!\n");
}
Você pode chamar essa função de F# usando o código a seguir.
open System.Runtime.InteropServices
module InteropWithNative =
[<DllImport(@"C:\bin\nativedll", CallingConvention = CallingConvention.Cdecl)>]
extern void HelloWorld()
InteropWithNative.HelloWorld()
Interoperabilidade com código nativo é chamada de de invocação de plataforma e é um recurso do CLR. Para obter mais informações, consulte Interoperação com código não gerenciado. As informações nesta seção são aplicáveis a F#.