一些鬼人用VC写的DLL,要我用JAVA调用,晕死~~。 同学,唯有看看jni才是你的出路其实也不太难 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 晕,这个系统我做的,只是那时候都是用C#写的,没用JAVA JAVA调用DLL简单小例子这个小例子用JNI调用了VC++做的DLL动态库。1、总体说明:实现一个函数,传入整形数i,返回值i*i,这个函数做在DLL中,java将通过JNI调用这个函数,传入一个参数,得到返回值。确定DLL的名称为calldll.dll,函数shanfei(int i)。2、编写java程序javacall.java,如下:public class javacall{static{System.loadLibrary("calldll");}public native static int shanfei(int i);public static void main(String[] args){javacall jc = new javacall();int j;j = jc.shanfei(4);System.out.println(j);}}3、编译javac javacall.java4、生成头文件javah javacall生成javacall.h文件5、制作VC++动态库建立新DLL工程,程序中添加:#include "javacall.h"JNIEXPORT jint JNICALL Java_javacall_shanfei (JNIEnv *, jclass, jint p){int j = p*p;return j;}别忘了将javacall.h复制到VC工程目录中,然后编译,如果编译说找不到jni.h文件,可以将jni.h复制到工程目录中,还可将javacall.h文件中的#include <jni.h>改为#include "jni.h",再?/span> 使用javamail发送邮件,在程序里如何获得发送过程中返回的结果码? java mail .. java分布式 spring+hibernate,不提交数据库? 国际化问题? java定时器 jasperReport 的jrxml怎么显示 javaBean 中的List 菜鸟问题 jive的源代码哪里有下载的? JSP如何获取到PAGE传递过来选中的某几个Id 急盼高手:struts1.2中ActionErrors的问题! hibernate 在select 中怎样表达乘除这样的运算呢?
实现一个函数,传入整形数i,返回值i*i,这个函数做在DLL中,java将通过JNI调用这个函数,传入一个参数,得到返回值。
确定DLL的名称为calldll.dll,函数shanfei(int i)。2、编写java程序javacall.java,如下:
public class javacall
{
static
{
System.loadLibrary("calldll");
}public native static int shanfei(int i);public static void main(String[] args)
{
javacall jc = new javacall();
int j;
j = jc.shanfei(4);
System.out.println(j);
}
}3、编译
javac javacall.java4、生成头文件
javah javacall
生成javacall.h文件5、制作VC++动态库
建立新DLL工程,程序中添加:#include "javacall.h"JNIEXPORT jint JNICALL Java_javacall_shanfei (JNIEnv *, jclass, jint p)
{
int j = p*p;
return j;
}
别忘了将javacall.h复制到VC工程目录中,然后编译,如果编译说找不到jni.h文件,可以将jni.h复制到工程目录中,还可将javacall.h文件中的#include <jni.h>改为#include "jni.h",再?/span>