C#在运行时自动引入正确的Dlls

设置程序Dlls的搜索路径

1.导入Native函数

/// <summary>
/// 设置Dlls的搜索路径
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern bool SetDllDirectory(string path);

2.在引入包装类中设置相应的Dlls的搜索路径

var path = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
path = Path.Combine(path, Environment.Is64BitProcess ? "x64" : "x86");
SetDllDirectory(path);

原文地址:https://www.cnblogs.com/linxmouse/p/12009946.html

时间: 2024-08-10 16:10:05

C#在运行时自动引入正确的Dlls的相关文章

hadoop配置(4) --在每次运行时自动删除输出目录

运行 Hadoop 程序时,为了防止覆盖结果,程序指定的输出目录(如 output)不能存在,否则会提示错误,因此运行前需要先删除输出目录.在实际开发应用程序时,可考虑在程序中加上如下代码,能在每次运行时自动删除输出目录,避免繁琐的命令行操作: Configuration conf = new Configuration(); Job job = new Job(conf); /* 删除输出目录 */ Path outputPath = new Path(args[1]); outputPath

MyEclipse运行时自动保存

今天第一次用MyEclipse,我发现我的代码明明修改了,但运行结果发现总是修改前的代码结果.后来发现,是代码修改后必须保存,再点运行.这个功能明显不合适,所以需要更改MyEclipse的配置.红框是修改后的结果.

Objective-C Runtime 运行时之四:Method Swizzling

理解Method Swizzling是学习runtime机制的一个很好的机会.在此不多做整理,仅翻译由Mattt Thompson发表于nshipster的Method Swizzling一文. Method Swizzling是改变一个selector的实际实现的技术.通过这一技术,我们可以在运行时通过修改类的分发表中selector对应的函数,来修改方法的实现. 例如,我们想跟踪在程序中每一个view controller展示给用户的次数:当然,我们可以在每个view controller的

Objective-C 2.0的运行时编程

Objective-C 2.0 的运行时环境叫做Morden Runtime,iOS 和Mac OS X 64-bit 的程序都运行在这个环境,也就是说Mac OS X 32-bit 的程序运行在旧的Objective-C 1.0 的运行时环境LegacyRuntime,这里我们只讲解Morden Runtime.  同运行时交互主要在三个不同的地方,分别是A.Objective-C 源码(譬如:你定义的Category中的新方法会在运行时自动添加到原始类).B.NSObject 的方法(isM

Objective-C Runtime 运行时之四:Method Swizzling(转载)

理解Method Swizzling是学习runtime机制的一个很好的机会.在此不多做整理,仅翻译由Mattt Thompson发表于nshipster的Method Swizzling一文. Method Swizzling是改变一个selector的实际实现的技术.通过这一技术,我们可以在运行时通过修改类的分发表中selector对应的函数,来修改方法的实现. 例如,我们想跟踪在程序中每一个view controller展示给用户的次数:当然,我们可以在每个view controller的

ios 引入第三方库时 运行时找不到函数实现的 问题

今天引入webtrends 这个库,结果一直运行时找不到函数,纳闷了一下午! 后来发现,是other flag没有设置对,对于那些包含category用来扩展ios原始类型的库,链接的时候需要特别的链接选项: 我先参看了如下的链接,感谢原作者! http://blog.csdn.net/xiaowenwen1010/article/details/40782971 读完原文后,我再总结一下:

系统启动时自动运行开发的程序,采用计划任务

系统启动时自动运行开发的程序,采用计划任务. 如果通过设置注册表来实现的,发现如果用户没有登陆桌面,就不能自动运行. 所以采用计划任务,即使用用户不登陆,只要电脑开机或重启后,都能在后台运行开发的程序.

maven的web工程下用pom引入jdbc包,运行时仍显示classnotfoundexception方法

今天在公司培训,做一个简单的servlet程序,需要使用tomcat的web工程. 我先创建maven工程,右键添加web项目属性,于是愉快的开始写servlet,其中有做数据库于是要使用到第三方的jdbc驱动,于是我就用pom.xml引入,引入部分如下: <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version&

Android PermissionUtils:运行时权限工具类及申请权限的正确姿势

Android PermissionUtils:运行时权限工具类及申请权限的正确姿势 ifadai 关注 2017.06.16 16:22* 字数 318 阅读 3637评论 1喜欢 6 PermissionUtil 经常写Android运行时权限申请代码,每次都是复制过来之后,改一下权限字符串就用,把代码搞得乱糟糟的,于是便有了封装工具类的想法,话不多说,先看怎么用: 工具类及Demo:github 简洁版申请权限 申请一个权限: PermissionUtils.checkAndRequest