次の方法で共有


外部関数 (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#)