外部函数 (F#)

本主题介绍 F# 语言对在本机代码中调用函数的支持。

[<DllImport( arguments )>]
extern declaration

备注

在前面的语法中,arguments 表示提供给 DllImportAttribute 特性的参数。 第一个参数是一个字符串,表示包含此函数的 DLL 的名称(不带 .dll 扩展名)。 还可以向 DllImportAttribute 类的任何公共属性提供附加参数,如调用约定。

假定有包含以下导出的函数的本机 C++ DLL。

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

通过使用下面的代码可从 F# 中调用此函数。

open System.Runtime.InteropServices

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

InteropWithNative.HelloWorld()

与本机代码的互操作称为“平台调用”,这是 CLR 的一项功能。 有关更多信息,请参见与非托管代码交互操作。 该节中的信息适用于 F#。

请参见

参考

函数 (F#)