共用方式為


外部函式 (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()

與機器碼的互通性稱為「平台叫用」(Platform Invoke),是 CLR 的功能。 如需詳細資訊,請參閱與 Unmanaged 程式碼互通。 該章節中的資訊也適用於 F#。

請參閱

參考

函式 (F#)