有没有一种方法可以指定要用DllImport导入的给定程序集的搜索路径?[DllImport("MyDll.dll")]static extern void Func();这将在应用程序目录和PATH环境变量中搜索dll。但是有时dll将放置在其他位置。可以在app.config或清单文件中指定此信息,以避免动态加载和动态调用吗?
3 回答
白衣非少年
TA贡献1155条经验 获得超0个赞
这可能很有用DefaultDllImportSearchPathsAttribute类
Eg
[assembly: DefaultDllImportSearchPaths(DllImportSearchPath.UserDirectories)]
还要注意,您也可以使用AddDllDirectory,这样就不会搞砸了:
[DllImport("kernel32.dll", SetLastError = true)]
static extern bool AddDllDirectory(string path);
人到中年有点甜
TA贡献1895条经验 获得超7个赞
AddDllDirectory首次调用导入的函数之前,请尝试使用其他DLL路径进行调用。
如果您的Windows版本低于8,则需要安装此修补程序,从而AddDllDirectory为Windows 7、2008 R2、2008和Vista(缺少XP的修补程序)添加缺少该功能的API 。
- 3 回答
- 0 关注
- 805 浏览
添加回答
举报
0/150
提交
取消