• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

java调用C++代码

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、在要使用到C++代码的类文件中声明一个native方法,例如:

1 public class TestNative{
2 
3     public native void test();
4 
5 
6 }

二、javac编译此java文件,然后使用javah TestNative命令生成一个头文件

三、使用visual studio工具新建dll项目

然后将jdk目录下的inlcude文件夹下的jni.h和jawt.h以及include/win32文件夹下的jin_md.h和jawt_md.h文件添加在上面的dll项目中,然后将我们之前生成的TestNative.h文件中的#include<jni.h>改为#inlcude"jni.h"因为引号是在本地查找头文件,

而<>实在标准库函数中查找。

 1 /* DO NOT EDIT THIS FILE - it is machine generated */
 2 #include "jni.h"
 3 /* Header for class TestNative */
 4 
 5 #ifndef _Included_TestNative
 6 #define _Included_TestNative
 7 #ifdef __cplusplus
 8 extern "C" {
 9 #endif
10 /*
11  * Class:     TestNative
12  * Method:    test
13  * Signature: (LTestNative/JavaObject;)V
14  */
15 JNIEXPORT void JNICALL Java_TestNative_test
16   (JNIEnv *, jobject);
17 
18 #ifdef __cplusplus
19 }
20 #endif
21 #endif

 

然后我们在C++中实现这个函数即可,例如:

 1 // Dll_native.cpp: 定义 DLL 应用程序的导出函数。
 2 //
 3 
 4 #include "stdafx.h"
 5 #include "TestNative.h"
 6 #include <iostream>
 7 
 8 
 9 JNIEXPORT void JNICALL Java_TestNative_test(JNIEnv *, jobject) {
10     
11     std::cout << "hello C++" << std::endl;
12 }

最后编译项目生成一个dll文件;

四、最后将生成好的dll文件放到java项目中,使用代码调用:

 1 public class TestNative{
 2 
 3     public native void test();
 4 
 5     public static void main(String[] args){
 6 
 7         System.loadLibrary("Dll_native");
 8 
 9         TestNative tn = new TestNative();
10         tn.test();
11     }
12 
13 
14 }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
c#优化代码的一些规则——判断null值得不同写法[六]发布时间:2022-07-13
下一篇:
H3C时钟ntp日志、欢迎信息发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap