jni01

来源:互联网 发布:秋诗词散文 知乎 编辑:程序博客网 时间:2024/05/09 19:15

01,java中要写上要调用的方法

public native static void getStringFromC();

02,生成头文件 javah

cmd---切换到src 目录下 

输入javah -classpath . -jni com.xxx.xxxx.JniTest

这样就能得到.h文件了

03.讲头文件导入vs里面的头文件里面

先把.h文件放入 vs工程目录里面去,然后点头文件添加现有项

导入都会发现#include <jni.h>爆红  ----可以去jdk目录中搜索jni.h 文件

将其添加现有项   改为#include "jni.h"  (因为这个文件不是系统的,系统的都是<>)

还需要导入jni_md.h文件

04.实现.h文件里面的函数

.c文件中要:

#include "com_xxx_xxxx_JniTest.h"

//函数实现

JNIEnv *env   2级指针  

C的函数名称:Java _完整类名(包名)_ 函数名称

JNIEXPORT jstring JNICALL  Java_xxxxxxxx_xxxxxxxxx_getStringFromC

(JNIEnv *env ,jclass jcls){

//返回一个字符串

//将c的字符串转换为一个java的字符串

return (*env)->NewStringUTF(env,"c string");

}

5.生成一个dll动态库文件 

DeBug 窗口   配置管理器-----活动解决方案 ---平台-----x64

vs 右面窗口 点击根目录右键  ----属性----配置类型------生成dll动态库---应用 

在然后 生成-----生成解决方案


6.java 中加载dll动态库

static {

System.loadLibrary("jni study);

}

0 0
原创粉丝点击