jnative调用delphi的DLL文件
来源:互联网 发布:windows安装包制作工具 编辑:程序博客网 时间:2024/06/06 01:13
1.下载JNative的包
JNative-1.3.2下有三个文件:JNativeCpp.dll,libJNativeCpp.so,JNative.jar。
JNativeCpp.dll拷到windows/system32目录下
libJNativeCpp.so为Linux中使用的文件
JNative.jar扩展包拷到%JAVA_HOME%/jre/lib/ext下或者导入到工程中
2.Jnative中使用到的一些类和方法
org.xvolks.jnative.Jnative: 装载dll文件,定位函数 如:Jnative native=new Jnative("dllName");
JNative(),setParameter(),setRetVal(),getRetVal() etc.
org.xvolks.jnative.pointers.Pointer: 替代本地函数中的的指针,需要先申请一块内存空间,才能创建,一般使用MemoryBlockFactory利用工厂模式进行创建.
Pointer(),dispose()
org.xvolks.jnative.pointers.memory.MemoryBlockFactory : 申请一块内存空间
createMemoryBlock()
org.xvolks.jnative.exceptions.NativeException: 抛出装载,定位等方面的异常
org.xvolks.jnative.Type: 列举和管理Jnative需要的不同的数据类,一般需要传值的时候指定所传值的类型和函数的返回值
3.使用方法
3.1. 加载dll文件
3.2. 调用函数
4.一个简单的例子:
import org.xvolks.jnative.JNative;
import org.xvolks.jnative.Type;
import org.xvolks.jnative.exceptions.NativeException;
public class JNativeTest {
public static final int messageBox(int parentHandle, String message,
String caption, int buttons) throws NativeException,
IllegalAccessException {
JNative n = null;
try {
n = new JNative("User32.dll", "MessageBoxA"); // 常量DLL_NAME的值为User32.dll
// 构造JNative时完成装载User32.dll,并且定位MessageBoxA方法
n.setRetVal(Type.INT); // 指定返回参数的类型
int i = 0;
n.setParameter(i++, Type.INT, "" + parentHandle);
n.setParameter(i++, Type.STRING, message);
n.setParameter(i++, Type.STRING, caption);
n.setParameter(i++, Type.INT, "" + buttons); // 指定位置上的参数类型和值
n.invoke(); // 调用方法
return Integer.parseInt(n.getRetVal());
} finally {
if (n != null)
n.dispose(); // 记得释放
}
}
public static void main(String[] args) throws NativeException, IllegalAccessException{
JNativeTest.messageBox(100,"Hello jnative", "jnativetest", 1);
}
}
- jnative调用delphi的DLL文件
- Jnative调用delphi编译的dll解密方法
- java通过JNative调用.dll文件
- JAVA(JNI,Jnative,JNA)分别调用delphi的动态链接库(dll)的技术交流.
- JAVA(JNI,Jnative,JNA)分别调用delphi的动态链接库(dll)
- Java调用dll例子,JNative的使用
- 关于jnative调用dll的一些心得
- JNative调用dll打印
- JNative:JAVA调用DLL
- jnative 调用dll问题
- jnative 调用dll
- 一个简单的jnative调用dll例子(含dll代码)
- 利用JNative调用MediaInfo.dll
- java 通过jnative调用dll
- JAVA 使用JNative调用DLL
- java中调用 dll 动态库的简洁方法 JNative
- 使用Java的JNative调用dll动态链接库
- Java 通过JNative调用已经编写好的DLL
- 关于MyEclipse 7.0的插件添加问题
- XMLBEANS的使用总结
- 浮动元素的两端对齐
- VC编程小技巧
- 求斐波那契数列第N项及大数求和
- jnative调用delphi的DLL文件
- 最新MyEclipse 7.5 插件安装方法
- 插入代码
- Oracle数据库监听配置
- 预备提供Java棋类游戏合集包
- VC6向导生成资源管理器界面
- 子网掩码Subnet mask及子网的划分
- 3.3.4 在运行时操作元数据
- oracle 误删除日志文件后的处理方法!