有没有一种方法可以指定要用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);
慕的地6264312
TA贡献1817条经验 获得超6个赞
AddDllDirectory首次调用导入的函数之前,请尝试使用其他DLL路径进行调用。
如果您的Windows版本低于8,则需要安装此修补程序,从而AddDllDirectory为Windows 7、2008 R2、2008和Vista(缺少XP的修补程序)添加缺少该功能的API 。
- 3 回答
- 0 关注
- 607 浏览
添加回答
举报
0/150
提交
取消