1. java程序

  1. public class TestHello {
  2.  
  3. static {
  4.  
  5. System.loadLibrary("TestHello");
  6.  
  7. }
  8.  
  9. public static native int add(int a, int b);
  10.  
  11. public static void main(String[] args) {
  12.  
  13. int c = add(2, 5);
  14. System.out.print("result:::::"+c);
  15.  
  16. }
  17.  
  18. }

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

6. 在TestHello.cpp中 实现TestHello.h中的函数

  1. // TestHello.cpp : Defines the exported functions for the DLL application.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "dllApi.h"
  6.  
  7. JNIEXPORT jint JNICALL Java_TestHello_add
  8. (JNIEnv * env, jclass obj, jint a, jint b){
  9. int var =;
  10. dllApi* test = new dllApi();
  11. var = test->DLL_API_ADD(a, b);
  12. delete test;
  13. return var;
  14. };

dllApi.h

  1. #pragma once
  2. class dllApi
  3. {
  4. public:
  5. dllApi(void);
  6. ~dllApi(void);
  7.  
  8. int DLL_API_ADD(int , int );
  9.  
  10. int DLL_API_SUB(int , int );
  11.  
  12. int DLL_API_MUL(int , int );
  13.  
  14. int DLL_API_DIV(int , int );
  15.  
  16. };

dllApi.cpp

  1. #include "StdAfx.h"
  2. #include "dllApi.h"
  3.  
  4. dllApi::dllApi(void)
  5. {
  6. }
  7.  
  8. dllApi::~dllApi(void)
  9. {
  10. }
  11.  
  12. int dllApi :: DLL_API_ADD(int a, int b){
  13. return (a + b);
  14. };
  15.  
  16. int dllApi :: DLL_API_SUB(int a, int b){
  17. return (a-b);
  18. };
  19.  
  20. int dllApi :: DLL_API_MUL(int a, int b){
  21. return (a*b);
  22. };
  23.  
  24. int dllApi :: DLL_API_DIV(int a, int b){
  25. return (a/b);
  26. };

7. 编译生成TestHello.dll

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

java jni c++ 例子的更多相关文章

  1. java——JNI(例子控制台(64位)清屏

    因为java的最底层是jvm,所以单纯的控制台java程序不能感知jvm再下面的操作系统的情况, 可以通过JNI(Java Native Interface)技术实现java后台调用C++/C的dll ...

  2. Java JNI 编程进阶 实例+c++数据类型与jni数据类型转换

    原文:http://www.iteye.com/topic/295776 JNI一直以来都很少去关注,但却是我心中的一个结,最近这几天刚好手头有点时间,因此抽空看了一下这方面的东西,整理了一份文档,J ...

  3. java jni 调用c语言函数

    今日在hibernate源代码中遇到了native关键词,甚是陌生,就查了点资料,对native是什么东西有了那么一点了解,并做一小记. native关键字说明其修饰的方法是一个原生态方法,方法对应的 ...

  4. java JNI介绍

    java JNI介绍 目录 java JNI介绍 1. Java调用C++代码 2.C++代码调用java代码 JNI是Java Native Interface的全称. oracle文档中是这样描述 ...

  5. java + jni + mingw实例开发(基于命令行窗口模式)

    java+ jni + mingw 参考网址: http://wenku.baidu.com/link?url=9aQ88d2ieO7IgKLlNhJi5d3mb3xwzbezLPzSIX3ixz4_ ...

  6. Java正则表达式匹配例子

    Java正则表达式匹配例子 package com.ibm.test; import java.util.regex.Matcher; import java.util.regex.Pattern; ...

  7. 三、Android NDK编程预备之Java jni入门创建C/C++共享库

    转自: http://www.eoeandroid.com/thread-264971-1-1.html 应网友回复,答应在两天前要出一篇创建C/C++共享库的,但由于清明节假期,跟朋友出去游玩,丢手 ...

  8. 二、Android NDK编程预备之Java jni入门Hello World

    转自:  http://www.eoeandroid.com/forum.php?mod=viewthread&tid=264543&fromuid=588695 昨天已经简要介绍了J ...

  9. 一、Android NDK编程预备之Java jni简介

    转自:  http://www.eoeandroid.com/thread-264384-1-1.html 游戏开发 视频教程 博客 淘帖     论坛›eoe·Android应用开发区›Androi ...

随机推荐

  1. Step by Step 创建一个WCF Service

    原创地址:http://www.cnblogs.com/jfzhu/p/4025448.html 转载请注明出处 (一)创建WCF Service (1)创建WCF Service类库 创建一个Cla ...

  2. ASP.NET Web API自身对CORS的支持:从实例开始

    在<通过扩展让ASP.NET Web API支持W3C的CORS规范>中我们通过自定义的HttpMessageHandler为ASP.NET Web API赋予了跨域资源共享的能力,具体来 ...

  3. 缓存篇(Cache)~大话开篇

    回到占占推荐博客索引 闲话杂淡 想写这篇文章很久了,但总是感觉内功还不太够,总觉得,要写这种编程领域里的心法(内功)的文章,需要有足够的实践,需要对具体领域非常了解,才能写出来.如今,感觉自己有写这种 ...

  4. Chrome开发者工具不完全指南:(三、性能篇)

    卤煮在前面已经向大家介绍了Chrome开发者工具的一些功能面板,其中包括Elements.Network.Resources基础功能部分和Sources进阶功能部分,对于一般的网站项目来说,其实就是需 ...

  5. 使用python拼接多张图片.二三事

    前几日在博客上看到一篇“使用python拼接多张图片”的Blog[具体是能将的图片名字必须是形如xx_1.png ... xx_100.png或者xx_001.png ... xx_100.png,拼 ...

  6. 30个你必须记住的CSS选择符

    所以你学会了基础的id,类和后代选择符,然后你就一直用它们了吗?如果是这样,你丢失了(css的)巨大的灵活性.在本文中提到的很多选择器属于CSS3规范的一部分,因此,只有在现代浏览器中才可使用. 1. ...

  7. PowerDesigner最基础的使用方法入门学习

    1:入门级使用PowerDesigner软件创建数据库(直接上图怎么创建,其他的概念知识可自行学习) 我的PowerDesigner版本是16.5的,如若版本不一样,请自行参考学习即可.(打开软件即是 ...

  8. 一起学微软Power BI系列-官方文档-入门指南(7)发布与共享-终结篇+完整PDF文档

    接触Power BI的时间也只有几个月,虽然花的时间不多,但通过各种渠道了解收集,谈不上精通,但对一些重要概念和细节还是有所了解.在整理官方文档的过程中,也熟悉和了解了很多概念.所以从前到后把微软官方 ...

  9. MySQL学习笔记十一:数据导入与导出

    数据导入 1.mysqlimport命令行导入数据 在使用mysqlimport命令导入数据时,数据来源文件名要和目标表一致,不想改文件名的话,可以复制一份创建临时文件,示例如下. 建立一个文本use ...

  10. iOS开发之使用Storyboard预览UI在不同屏幕上的运行效果

    在公司做项目一直使用Storyboard,虽然有时会遇到团队合作的Storyboard冲突问题,但是对于Storyboard开发效率之高还是比较划算的.在之前的博客中也提到过,团队合作使用Storyb ...