为了账号安全,请及时绑定邮箱和手机立即绑定

在.NET中为DllImport指定搜索路径

在.NET中为DllImport指定搜索路径

摇曳的蔷薇 2019-12-13 15:10:54
有没有一种方法可以指定要用DllImport导入的给定程序集的搜索路径?[DllImport("MyDll.dll")]static extern void Func();这将在应用程序目录和PATH环境变量中搜索dll。但是有时dll将放置在其他位置。可以在app.config或清单文件中指定此信息,以避免动态加载和动态调用吗?
查看完整描述

3 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

这可能很有用DefaultDllImportSearchPathsAttribute类

Eg


[assembly: DefaultDllImportSearchPaths(DllImportSearchPath.UserDirectories)]

还要注意,您也可以使用AddDllDirectory,这样就不会搞砸了:


[DllImport("kernel32.dll", SetLastError = true)]

static extern bool AddDllDirectory(string path);



查看完整回答
反对 回复 2019-12-14
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

AddDllDirectory首次调用导入的函数之前,请尝试使用其他DLL路径进行调用。


如果您的Windows版本低于8,则需要安装此修补程序,从而AddDllDirectory为Windows 7、2008 R2、2008和Vista(缺少XP的修补程序)添加缺少该功能的API 。


查看完整回答
反对 回复 2019-12-14
  • 3 回答
  • 0 关注
  • 572 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信