Java_ABC_9.Java中导入dll文件
来源:互联网 发布:java实现发送邮件 编辑:程序博客网 时间:2024/06/06 05:20
1. C++生成DLL文件
1.1创建工程
打开VC++编译器,然后选择Win32 Project ,然后选择工程位置和工程名称,然后点击下一步,再点击下一步 ,在应用程序类型 中选择DLL(D),然后点击完成 ,至此工程创建成功。
1.2编写函数
工程名字是test,在源文件文件夹中会有一个”test.app“文件,打开文件,在文件中写:
extern "C" __declspec(dllexport) int sum(int a,int b)
{
return a+b;
}
首先:extern "C" __declspec(dllexport) 这部分是固定的,然后是返回值类型 ,函数名称 ,参数列表,下面就是函数的具体实现。
1.3生成DLL
选择生成方式为”Debug“或者”Realse“,然后在Debug文件夹或者Realse文件夹中会找到相应的DLL文件。
1.4验证DLL
去网上下载个DLL函数查看器,然后打开生成的DLL文件,看是否你要的函数在里面。
2. Java中导入DLL文件
2.1下载地址:
JNative_1.4RC2_src.zip :http://jaist.dl.sourceforge.net/sourceforge/jnative/JNative_1.4RC2_src.zip
JNative_1.4RC2_src.zip是JNative源代码的压缩包把它解压后从中找到libJNativeCpp.so和JNativeCpp.dll两个文件.JNativeCpp.dll应用在Windows平台下.把它放在
JNative.jar :http://nchc.dl.sourceforge.net/sourceforge/jnative/JNative.jar
把JNative.jar加入到所需的工程中,把要调用的dll文件也放在c:\windows\system32目录下。
2.2测试函数
package com.xgz.jnative; import org.xvolks.jnative.JNative; import org.xvolks.jnative.Type; public class Test {public static void main(String[] args)throws Exception { /*系统加载dll文件有两种写法
1.loadLibrary方法:把dll文件拷贝到c:\windows\system32目录下,引用时只需写dll名字
2.load方法:写dll文件的完整路径
*/
System.loadLibrary("InterfaceFun");//InterfaceFun是dll文件 //参数说明InterfaceFun dll名,AddZhiYe函数名 JNative jnative = new JNative("InterfaceFun","AddZhiYe"); //设置此函数的返回值 jnative.setRetVal(Type.INT); //赋予参数值 int i=0; jnative.setParameter(i++, Type.INT,"1"); jnative.setParameter(i++, Type.INT,"2"); //函数执行 jnative.invoke(); //打印函数返回值 System.out.println(Integer.parseInt(jnative.getRetVal()));}
}
2.3注意:
System.loadlibrary(""):
1) 和jre相关的一些目录
2)程序当前目录
3)Windows目录
4)系统目录(system32)
5)系统环境变量path指定目录
- Java_ABC_9.Java中导入dll文件
- 续:Java Tomcat 中调用.net DLL的方法 导入文件gacutil 和 regasm
- java中调用dll文件
- eclipse中导入Java文件
- 使用vs生成dll文件并导入java工程
- 在java项目中引入dll文件
- java中使用jni引用dll文件
- dll文件导出导入函数
- java中excel文件数据的导入
- java中导入导出Excel文件
- eclipse中导入Java文件的方法
- java中使用poi导入excel文件
- Revit中Dynamo编程——在Python中怎么导入任意的dll文件
- Eclipse java工程中添加文件+导入工程文件
- 【末世旅行之其他】MFC中导入大漠插件DLL文件
- DOC使用dumpbin导入数据dll文件
- 考试系统——导入DLL文件
- python导入 tensorflow DLL文件找不到
- Java Clone
- 常见基础算法大集合(C语言实现)
- 在Android中Service概述
- Fedora9/12下搭建Qt Creator的ARM开发环境 并 移植Qt4.6.2到Micro2440(二)
- mysql 查询注释
- Java_ABC_9.Java中导入dll文件
- HPC中线程模型的比较和选择
- JSTL使用3
- 带宽的理解
- SimpleCursorAdapter类与数据绑定
- pow(double a,int b) [No. 41]
- 百万数据查询优化技巧三十则
- 【android学习之十一】——数据存储3:数据共享ContentProvider,ContentResolver
- vim中三类文本对象 句,段落,节的区别