码迷,mamicode.com
首页 > 编程语言 > 详细

Java 调用 C++ (Java 调用 dll)康哥手把手教你

时间:2015-11-20 00:01:51      阅读:328      评论:0      收藏:0      [点我收藏+]

标签:

因为要做点图形处理的项目,需要在Java中调用dll库,所以开发的第一步是研究了一下Java Jni的使用方法。突然发现Android Jni 使用跟这个好像(麻蛋,不就是一样的吗,但是Android中需要使用so动态链接库)。

第一步 创建Java工程,命名JniDemo,添加JniDemo.java

 技术分享

第二步 在Java类中添加native方法

/**
 * @author Baokang
 */
public class JniDemo{
    public native static void set(int i);
    public native static int get();
}

第三步 使用javah命令生成头文件

在cmd中执行javah javah com.bk.jnidemo.JniDemo,生成 com_bk_jnidemo_JniDemo.h 头文件

技术分享

 

第四步 创建DLL项目,使用Vs2010

创建Win32项目,项目名字JniDemo

技术分享

技术分享

 

技术分享

 

 

第五步 拷贝com_bk_jnidemo_JniDemo.h,jni.h,jni_md.h至vs工程cpp文件目录下

其中jni.h在jdk的include目录下,jni_md.h在jdk的include\win32目录下

技术分享

 

 

在项目中添加头文件目录下com_bk_jnidemo_JniDemo.h,#include <jni.h> 改为 #include "jni.h"

第六步 在Jni.cpp中实现C++方法

技术分享

第七步 生成64位dll库

 先修改配置管理器

技术分享

技术分享

技术分享

技术分享

然后生成64dll库

技术分享

 

 

第八步 把64位dll库拷贝至Java JniDemo项目根目录下,修改JniDemo.java

注意64位dll在X64目录下,然后修改JniDemo.java如下

 1 package com.bk.jnidemo;
 2 
 3 public class JniDemo {
 4     static{
 5         System.loadLibrary("JniDemo");
 6     }    
 7     public native static void set(int i);
 8     public native static int get();
 9     
10     public static void main(String[] args) {
11         set(100);
12         System.out.println(get());
13         
14     }
15 }

第九步 运行,搞定

技术分享

技术分享

 

Java 调用 C++ (Java 调用 dll)康哥手把手教你

标签:

原文地址:http://www.cnblogs.com/baokang/p/4979243.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!