java调用vc编译的dll
2008-06-29 22:14
330 查看
这个小例子用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.java
4、生成头文件
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",再编译。
6、java调用
将生成的calldll.dll文件复制到javacall.java所在的目录中,运行
java javacall,应该可以看到运行结果。
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.java
4、生成头文件
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",再编译。
6、java调用
将生成的calldll.dll文件复制到javacall.java所在的目录中,运行
java javacall,应该可以看到运行结果。
相关文章推荐
- java调用VC编译而成的dll文件
- Java jna学习之----VC++2010创建并调用动态链接库dll
- GCC编译dll,Java调用dll
- 使用VC脚本编译本地dll调用
- Java 调用C++编译的DLL总结
- java通过jni调用c编译的dll或so
- Java使用JNI调用VC的DLL的一个小例子
- [X264] MinGW编译x264,VC中调用libx264.dll
- Android Studio 通过JNA调用 Clang编译的so库,以及Java JNA 调用x64dll,C# dllimport调用x86dll
- Java采用JNI调用VC++生成的dll(Java与C++交互)
- Windows下java调用c的dll动态库--Dev_Cpp编译c生成dll
- java 中如何调用vc++的dll
- jni java 调用 dll 或vc窗口
- 如何用VC编写供JAVA调用的DLL
- 打算写一个vbnet调用vc编译出的dll
- Java採用JNI调用VC++生成的dll(Java与C++交互)
- 整理MINGW编译dll使用JNI被java调用的几种方式
- VC项目调用Matlab编译的DLL出现无法解析的外部符号
- VC与Matlab混合编程(在VC中调用.m文件编译生成的DLL)
- win32下使用gcc编译供java 调用的dll须知(jni)