Share via


Funciones externas (F#)

En este tema se describe la compatibilidad con lenguajes de F# para llamar a funciones en código nativo.

[<DllImport( arguments )>]
extern declaration

Comentarios

En la sintaxis anterior, arguments representa los argumentos que se proporcionan al atributo DllImportAttribute. El primer argumento es una cadena que representa el nombre del archivo DLL que contiene esta función, sin la extensión .dll. Se pueden proporcionar argumentos adicionales para cualquiera de las propiedades públicas de la clase DllImportAttribute, como la convención de llamada.

Supongamos que hay un archivo DLL nativo de C++ que contiene la siguiente función exportada.

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

Esta función se puede invocar en F# mediante el siguiente código.

open System.Runtime.InteropServices

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

InteropWithNative.HelloWorld()

La interoperabilidad con código nativo se denomina invocación de plataforma y es una característica del CLR. Para obtener más información, vea Interoperar con código no administrado. La información de esa sección es aplicable a F#.

Vea también

Referencia

Funciones (F#)