외부 함수(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#에 적용됩니다.