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

本文详细介绍了如何使用VS2012创建C++动态链接库,并让Java程序调用。首先在Java中创建工程并定义类,接着在VS2012中配置环境,解决jni.h找不到的问题,然后编写C++代码实现功能,最后将生成的DLL和Java类放入相应目录运行验证。
摘要由CSDN通过智能技术生成

一,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下,运行。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值