首页 > 解决方案 > 在 F# 中导入/打开 DLL

问题描述

我想知道是否有可能在 F#(二进制,而不是脚本)中导入/打开 DLL。

open SDL2

顺便说一句,这是我关于 stackoverflow 的第一个问题,请不要犹豫,问我更多细节。

标签: .net.net-coredllf#lib

解决方案


open ...打开一个命名空间/模块。它不引用程序集。

假设您打算使用 SDL2 的 C#/.NET 版本,您将需要引用该程序集。如果它以 nuget 包的形式提供,那么您可以将其添加为 Visual Studio 中的依赖项(manage nuget packages在依赖项上下文菜单中)或使用以下命令行dotnet add package <packagename>。如果它不是 nuget 包,那么您仍然可以直接引用程序集。在 Visual Studio 中,您应该能够add project reference在依赖项上下文菜单中进行选择,之后您可以选择浏览以选择要使用的 dll。

您还可以将 DLL 文件直接添加到项目文件中。首先复制DSL2.dll到一个已知位置,例如lib项目文件夹内的文件夹(如果需要,请包含依赖项),然后编辑项目文件以包含以下内容:

<ItemGroup>
  <Reference Include="SDL2">  <!--the name here can be anything-->
    <HintPath>lib\SDL2.dll</HintPath>
  </Reference>
</ItemGroup>

之后,您应该能够打开命名空间(open SDL2)或使用其完全限定名称(例如let x = SDL2.SDL.SDL_...)直接调用各种函数/类型


推荐阅读