外部関数 (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# にも適用されます。