0

我正在构建一个需要从 C++ dll 调用函数的 .Net C# 库项目。C++ dll 位于我项目的“lib”文件夹中。所以我使用[DllImport]。我需要将 lib 文件夹中 C++ dll 的路径传递给 DllImport。

我不希望它成为硬编码的完整路径。据我所知,我可以调用 SetDllDirectory("lib") 来添加我的 lib 文件夹进行搜索。但是,如果我没记错的话,应该在 [DllImport] 之前调用 SetDllDirectory()。我可以从哪里打电话?如果我从静态构造函数中执行此操作,则为时已晚。

4

1 回答 1

4

P/invoke DLL 在第一次调用 ap/invoke 方法时按需加载。因此,您只需要确保SetDllDirectory在第一次调用 DLL 中的函数之前调用。

于 2018-07-16T16:13:05.710 回答