Funkcje zewnętrzne (F#)
W tym temacie opisano F# obsługa języka wywoływanie funkcji w kodzie macierzystym.
[<DllImport( arguments )>]
extern declaration
Uwagi
W poprzednich składni arguments reprezentuje argumenty, które są dostarczane do DllImportAttribute atrybut.Pierwszy argument jest ciągiem, który reprezentuje nazwę biblioteki DLL, która zawiera funkcję bez rozszerzenie .dll.Dodatkowe argumenty mogą być dostarczane dla wszystkich właściwości publiczne z DllImportAttribute klasy, takich jak Konwencja wywołania.
Załóżmy, że masz macierzystym C++ biblioteki DLL, który zawiera następujące wyeksportowanej funkcji.
#include <stdio.h>
extern "C" void __declspec(dllexport) HelloWorld()
{
printf("Hello world, invoked by F#!\n");
}
Za pomocą następującego kodu, można wywołać tę funkcję z F#.
open System.Runtime.InteropServices
module InteropWithNative =
[<DllImport(@"C:\bin\nativedll", CallingConvention = CallingConvention.Cdecl)>]
extern void HelloWorld()
InteropWithNative.HelloWorld()
Współdziałanie z kodu macierzystego jest określone jako wywołać platformy i jest funkcją środowiska CLR.Aby uzyskać więcej informacji, zobacz Współdziałanie z kodem niezarządzanym.Informacje w tej sekcji dotyczy F#.