java 调用dll_(转)Java 调用 C++ (Java 调用 dll)

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

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

7221e17240365dff861ae41225ae2a5a.png

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

48304ba5e6f9fe08f3fa1abda7d326ab.png

/**

* @author Baokang

*/

public class JniDemo{

public native static void set(int i);

public native static int get();

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

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

4a97c96f949544bc4eb52c498de994db.png

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

创建Win32项目,项目名字JniDemo

b62b45c23c0b97e6d5bfe64a7bdcccf7.png

207538b695e66aa92b5c0320af338a37.png

b5424210ec0298f432d8c67f7c87a032.png

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

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

dfcd1e3c43b05340dd0850969bbd6057.png

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

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

ba13746ed29fd597e52fafec0a3cc74e.png

第七步 生成64位dll库

先修改配置管理器

4eeff7e54f4365d4ba9d17696f71079a.png

3bbe5ef18c8425a6beca615e3b65f36a.png

92acf0b27d033db9a28cc0120b344e82.png

231dccfa719709a0d1cd1b0471d878bc.png

然后生成64dll库

5237437ec12a69b0cd71382c16af4479.png

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

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

48304ba5e6f9fe08f3fa1abda7d326ab.png

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 }

48304ba5e6f9fe08f3fa1abda7d326ab.png

第九步 运行,搞定

f6fe45b397babb417bebe7fcdde3b2b0.png

1f0d6acde837c09d96195ddcb96e4de3.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值