外部函数 (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#。