C# 에서 C++ Dll 이야 다들 많이 사용하기때문에
docs.microsoft.com/ko-kr/dotnet/framework/interop/consuming-unmanaged-dll-functions
해당 파트를 보면 C#/ VB/ C++ 에 대한 설명이 나오는데
어이없게 F#만 설명이 쏙 빠져있다..
C# 이든 F# 이든 DllImportAttribute 를 사용하는거는 똑같으니까 똑같이 사용하면 되긴하는데.. 고거 한줄 추가하는게 뭐가 어렵다고 빼놓았는지 모르겠다..
F# 에서 Dll 를 사용하는 문서는 docs.microsoft.com/ko-kr/dotnet/fsharp/language-reference/functions/external-functions 여기 위치해있으며
[<DllImport(@"C:\bin\nativedll", CallingConvention = CallingConvention.Cdecl)>]
extern void HelloWorld()
뭐 이런식으로 쓸수있다.
F# 문법이 아니라 그냥 C++/C# 스타일의 함수 선언을 그대로 적으면되고,
C# 에서 out 으로 선언하던것은 & 레퍼런스를 걸면된다.
//C#
[DllImport("user32.dll", SetLastError = true)]
public static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);
//F#
[<DllImport("user32.dll", SetLastError = true)>]
extern UInt32 GetWindowThreadProcessId(IntPtr hWnd, UInt32& lpdwProcessId);
728x90
'프로그래밍 언어 노트 > F#' 카테고리의 다른 글
[C#/F#] C# 초기화 코드 제너레이터 (0) | 2021.03.06 |
---|---|
[F#/Monad] Fsharp Plus 라이브러리 (0) | 2020.11.03 |
[F#/C#] 닷넷 프레임워크 F#프로젝트 C#에서 참조하기 (0) | 2020.08.05 |
[F#] C# to F#, troubleshooting (0) | 2020.06.04 |
[F#] F#의 데이터 라이브러리 F# Data (0) | 2019.12.22 |