您的位置:首页 > 编程语言 > C语言/C++

Java调用c,c++图解(VS2012实现类库)

2014-05-11 17:32 465 查看
一,Java部分,创建工程,建立一个类:

public class Huige {
static {
System.loadLibrary("HuiHui");
}

public native static int hui(int n);

public static void main(String[] args) {
int x;
Huige fhui = new Huige();
x = fhui.hui(5);
System.out.println(x);

}


  1)分别生成Huige.class和 Huige.h文件

   


 2)打开Huige.h 文件,查看内容如下

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class Huige */

#ifndef _Included_Huige
#define _Included_Huige
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class:     Huige
* Method:    hui
* Signature: (I)I
*/
JNIEXPORT jint JNICALL Java_Huige_hui
(JNIEnv *, jclass, jint);

#ifdef __cplusplus
}
#endif
#endif
二,创建c,c++动态连接库

1)在Vs2012中创建动态链接库







2)执行编译,这时可能会报错,提示jni.h找不到,需要将jni.h所在的文件加入到项目的包含目录中。可以在项目中点右键->属性





3)创建Huige.h文件,将前面生成的.h文件内容引进去



4)在Huige.cpp文件中写代码,c语言实现内容,如下面从0加到n

// HuiHui.cpp : 定义 DLL 应用程序的导出函数。
//

#include "stdafx.h"
#include "Huige.h"
JNIEXPORT jint JNICALL Java_Huige_hui
(JNIEnv *, jclass, jint n){
int x=0;
for(int i=0;i<n;i++){
x+=i;
}
return x;
}



5)重现生成后,找到Huige.dll文件,将其和Huige.class文件放入jak的bin下,运行。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vs2012 c++ java