java jni 教程_[Java教程]java jni c++ 例子

[Java教程]java jni c++ 例子

0 2016-10-31 17:00:23

1. java程序public class TestHello { static { System.loadLibrary("TestHello"); } public static native int add(int a, int b); public static void main(String[] args) { int c = add(2, 5); System.out.print("result:::::"+c); }}

2 编译

javac TestHello.java

3. 生成c++头文件

javah TestHello

4. 创建 DLL动态链接库工程 TestHello

visual studio 2010:  File->new->project->win32 project-> dll->TestHello

5. 引入 jni.h, jni_md.h TestHello.h

TestHello工程右键-> Properties->Configuration Properties->C/C++ ->General -> Additional Include Directories

bc91bb04e6e9c61e24c974e4440db8f2.gif

6. 在TestHello.cpp中 实现TestHello.h中的函数// TestHello.cpp : Defines the exported functions for the DLL application.//#include "stdafx.h"#include "dllApi.h"JNIEXPORT jint JNICALL Java_TestHello_add (JNIEnv * env, jclass obj, jint a, jint b){ int var =0; dllApi* test = new dllApi(); var = test->DLL_API_ADD(a, b); delete test; return var;};

dllApi.h#pragma onceclass dllApi{public: dllApi(void); ~dllApi(void); int DLL_API_ADD(int , int ); int DLL_API_SUB(int , int ); int DLL_API_MUL(int , int ); int DLL_API_DIV(int , int ); };

dllApi.cpp#include "StdAfx.h"#include "dllApi.h"dllApi::dllApi(void){}dllApi::~dllApi(void){}int dllApi :: DLL_API_ADD(int a, int b){ return (a + b);};int dllApi :: DLL_API_SUB(int a, int b){ return (a-b);};int dllApi :: DLL_API_MUL(int a, int b){ return (a*b);};int dllApi :: DLL_API_DIV(int a, int b){ return (a/b);};

7. 编译生成TestHello.dll

8. 将dll文件拷贝到class目录下, 执行class文件,OK。

本文网址:http://www.shaoqun.com/a/260796.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

JAVA

0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值