系统中的DLL文件怎么用?

系统中的DLL文件怎么用?,第1张

Dell向运行于Windows *** 作系统下的程序提供代码、数据或函数。程序可根据DLL文件中的指令打开、启用、查询、禁用和关闭驱动程序。

打开一个程序的安装目录,在这里面可以看到一些dll的一些文件。如果在它的上面双击的话会在它的旁边提示:如果是想要查看它可以下载安装一个叫exescope的自定义应用软件的工具。

右边有一个更多,点击一下“更多”,可以看到它的默认安装路径,如果不需要更改的话,它就会默认的安装到c盘的程序文件夹中。

点击安装之后,在它d出的面板中有一个自动汉化的说明,我们点击“已阅”。接着在它的安装过程中会出现一个安装类型,可以根据需要选择一个安装类型,这里就选择它默认的“典型安装”,然后点击:下一步。当安装到汉化的安装目录的时候它会提示,如果是不想把它安装到默认位置的话,可以在点击浏览选择一个安装的文件位置。

第一步 建立一个监听类

建立监听类的作用是在应用中间件启动时自动执行加载程序。

1)创建一个类实现ServletContextListener 接口

2)实现contextInitialized方法

3)在项目的web.xml 文件中配置此监听类

第二步 将dll文件所在的路径添加到系统环境java.library.path 中

添加过程需要使用到反射机制来进行,不能使用System.setProperty()进行设置,设置了也无效。直接看代码:

private void addDirToPath(String s){try {//获取系统path变量对象Field field=ClassLoader.class.getDeclaredField("sys_paths")//设置此变量对象可访问 field.setAccessible(true)//获取此变量对象的值 String[] path=(String[])field.get(null)//创建字符串数组,在原来的数组长度上增加一个,用于存放增加的目录String[] tem=new String[path.length+1]//将原来的path变量复制到tem中 System.arraycopy(path,0,tem,0,path.length)//将增加的目录存入新的变量数组中 tem[path.length]=s//将增加目录后的数组赋给path变量对象field.set(null,tem)} catch (Exception e) {e.printStackTrace()}}

第三步 加载dll文件

接下来就可以写上下文初始化的方法了:

public void contextInitialized(ServletContextEvent arg0) {//获取存放dll文件的绝对路径(假设将dll文件放在系统根目录下的WEB-INF文件夹中)String path=arg0.getServletContext().getRealPath("WEB-INF")//将此目录添加到系统环境变量中 addDirToPath(path)//加载相应的dll文件,注意要将'\'替换为'/' System.load(path.replaceAll("\\\\","/")+"/XXXX.dll")}

第四步 重启启动应用中间件(Tomcat|Weblogic)

至此就可以在你的java程序中使用dll文件的方法了。

我说的方法有两个优点,第一、简单(与写程序相比,这简单多了),第二、灵活(我说的这两个方法可以随时跟据需要修改,但程序不行,你需要重写编译后才能用。)

第一个方法(如果不想让别人看到命令行,就加入echooff):1、先新建一个文件夹,把你要用的所有DLL文件放入这个文件侠。

2、用记事本输入以下格式命令:

copy

XXX.dll

c:\windows\system32\XXX.dll(以下方法是把一个XXX.dll的文件复制到c:\windows\system32\)

3、每行一条命令(太多的话,可以新建文件夹分类后,用*号代替文件名来 *** 作),保存文件为"setup.bat"

(保存时注意加上英文双引号),放入你新建存放DLL文件的文件夹中。

第二种方法:

把你所要用的DLL文件压缩到一个WIINRAR包里(压缩时注意设置解压路径),这样解压后,就会在指定目录里。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11143482.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存