一个简单示例 利用jawin完成调用window中dll的调用
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
最近由于项目的特殊需求,我们必须在程序调用window的dll。
开始我们用jni,后来由于调用的dll太多,而且很烦琐。所以,我们决定用开源的jawin调用。
jawin 可以对dll中的方法进行调用,也可以调用com中的方法.内部还提供了一个工具,直接对 com组件导出成 java的类,个人认为很方便。
下面是我们作的一个测试,很顺利便通过了。
1、下载jawin:http://jawinproject.sourceforge.net/。
2、配置:
》将jawin.jar放于%JAVA_HOME%/jre/lib/ext下 。
》将jawin.dll放于c:/winnt/system32下。否则将出现错误:COMException : no jawin in java.library.path;
也可将jawin.dll放于每个项目目录下。
》至此在Editplus中调试Jawin/NJawin的例子,可以通过。 而在Eclipse中有时还会出上面的错误:COMException : no jawin in java.library.path。
》在Eclipse中,菜单->window->preference->Java->installed JREs 将原来的remove,重新建一个指到你的java sdk目录。
》 ok了。
3、程序测试:
》调用 dll,dll 的方式不需要导出了,直接调用就可以了,下面是下载的包中提供的一个例子:
》我在win2000下,测试通过。
/*
* Created on Dec 22, 2005
*
*/
import org.jawin.FuncPtr;
import org.jawin.ReturnFlags;
/**
* @author gf mail to gf@163.com
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class GfJawinTest {
public static void main(String[] args) {
try {
FuncPtr msgBox = new FuncPtr("USER32.DLL", "MessageBoxW");
msgBox.invoke_I(0, "Hello From a DLL", "From Jawin", 0, ReturnFlags.CHECK_NONE);
} catch (Exception e) {
e.printStackTrace();
}
}
}
转自:http://www.blogjava.net/gf7/archive/2005/12/22/25041.html
给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
一个简单示例 利用jawin完成调用window中dll的调用相关推荐
- java播放声音类和一个简单示例
java播放声音类和一个简单示例 播放声音的类 复制代码 代码如下: import java.io.File; import java.io.IOException; import javax.so ...
- glibc版本查看_[译] 写一个简单的内存分配器(替换glibc中的malloc函数)
本文介绍如何用c语言实现一个简单的内存分配器,可替换glibc中的 malloc(), calloc(), realloc(), free(). 这是一篇入门级别的文章,所以不会介绍所有的细节. 代码 ...
- 【指针编程】 编写一个函数,利用指针在字符串s中的指定位置pos处(这里插入的位置是从1开始,不是下标。)插入字符串。插入的位置和内容是从键盘输入
[问题描述] 编写一个函数,利用指针在字符串s中的指定位置pos处(这里插入的位置是从1开始,不是下标)插入字符串.插入的位置和内容是从键盘输入 要求:子函数 void InsertStr(char ...
- java制作一个简单的画板_【Java】Thymeleaf一个简单示例
Thymeleaf简单介绍 Thymeleaf是用来开发Web和独立环境项目的服务器端的Java模版引擎 Spring官方支持的服务的渲染模板中,并不包含jsp.而是Thymeleaf和Freemar ...
- IoC容器Autofac(2) - 一个简单示例(附demo源码)
上篇文章中(IoC容器Autofac(1) -- 什么是IoC以及理解为什么要使用Ioc),我们用自己的方式实现了一个简陋的工厂类来实现IoC. 这里我们尝试使用Auotfac来替换我们的工厂类Mov ...
- Kerberos工作流:一个简单示例
说明:内容来自<Hadoop安全-大数据平台隐私保护>,此处记录仅是便于快速回顾. 现在通过一个工作流示例,展示 Kerberos 大概是怎么工作的.首先定义所有出现的组件. EXAMPL ...
- Vue.js如何写一个简单的原生js模块,浏览器中的表现如何?
2019独角兽企业重金招聘Python工程师标准>>> 浏览器正在逐步的支持原生JavaScript模块.Safari和Chrome的最新版本已经支持它们了,Firefox和Edge ...
- electron调用python_Electron中使用Node-ffi调用DLL
相关网址 版本对比表Electron版本 NODE_MODULE_VERSION Node版本 v3.1.13 64 v10.2.0 v4.2.11 69 v10.11.0 v5.0.11 70 v1 ...
- pb调用c语言dll,PB调用C#编写的Dll类库
在c# 中编写com组件,供PB调用实例 前言:c#中写的dll直接是不能被pb调用的,只有写成com组件才可以调用,所以用c#写dll时要注意. c#中新建类库 类库类型为通用类库,项目名为AddC ...
最新文章
- Ansible03-管理变量、加密、事实
- 加州理工《数据学习:机器学习课程》视频及ppt分享(附下载)
- Yahoo!网站性能最佳体验的34条黄金守则
- mysql添加枚举约束语句_mysql8 参考手册--MySQL如何处理约束
- 【KPGNN】运行错误与成功后的合集
- 301.inc.php,DeDeCMS默认首页及WWW域的301跳转
- 想深度探究数据库内核技术,墙裂推荐你看看这个
- 使用全备+binlog日志恢复数据库
- Unity 移动端的复制这么写
- java不带括号_java – 打印数组,不带括号和逗号
- 白帽子讲Web安全(纪念版)笔记
- 微信表情存入mysql是_Mysql存储微信Emoji表情问题
- PHP中 逗号,和句号.的区别
- 推荐信息安全书籍27本(含电子书)
- 【软硬件基础】X86和X64
- OGRE加载天龙八部场景
- HTML5 概述及基本语法
- Kali下卸载程序和安装程序的方法
- K8S故障排查指南:部分节点无法启动Pod资源-Pod处于ContainerCreating状态
- http和https分别是什么?