如何在[DllImport]之前调用SetDllDirectory()?

时间:2018-07-16 15:52:16

标签: c# dllimport setdlldirectory

我正在构建一个.Net C#库项目,该项目需要从C ++ dll调用函数。 C ++ dll位于我的项目中的“ lib”文件夹中。所以我用[DllImport]。我需要将lib文件夹中的C ++ dll路径传递给DllImport。我不希望它成为硬编码的完整路径。据我所知,我可以调用SetDllDirectory(“ lib”)来添加我的lib文件夹以进行搜索。但是,如果我没记错的话,应该在[DllImport]之前调用SetDllDirectory()。您能告诉它从哪里可以打电话吗?如果我从静态构造函数中执行此操作,那就太迟了。

1 个答案:

答案 0 :(得分:2)

第一次调用p / invoke方法时,将按需加载

P / invoke DLL。因此,您只需要确保在第一次调用DLL中的函数之前先调用SetDllDirectory