java 生成jni_Javah生成JNI头文件

在eclipse中建一项目,建一class

1 packageesmart.colfile.parse;2 3 publicclassTestHello {4 static{5 System.loadLibrary("TestHello");6 }7 8 publicstaticnativevoidhello(String msg);9 10 publicstaticvoidmain(String[] args) {11 12 hello("Hello,Kimm!");13 14 }15 }

F5刷新一下eclipse项目,让他编译一下(其实保存时也就编译了)

找到项目类存放目录如 G:\work\eclipse\test\bin

找到javah.exe ,可以配置到环境变量 ,方便调用

在命令行中输入

cd G:\work\eclipse\test\bin

cd g:

E:\tools\Java\jdk1.6.0_11\bin\javah.exe -classpath . -jni esmart.colfile.parse.TestHello

执行完成后在项目bin目录下就生成一个 esmart_colfile_parse_TestHello.h 文件,把这个文件给c++项目引用,并实现其中的方法

VS2008中 工具 - 选项 - 项目和解决方案 - VC++目录 要增加 E:\tools\Java\jdk1.6.0_11\include\win32 和 E:\tools\Java\jdk1.6.0_11\include 具体目录根据本地JDK安装情况

eclipse 项目右键 properties 里面 设置 java build path 中的 native library location 到 VC项目的发布目录

VC中

打开StdAfx.h文件,再最后面添加:

#include

#include "javah生成的.h"

cpp文件中实现 .h 中的方法

VC++项目现在基本都是UNICODE

1 JNIEXPORTvoidJNICALL Java_esmart_colfile_parse_TestHello_hello(JNIEnv*env, jclass obj, jstring jMsg , jint )2 {3 4 //const char *strMsgPtr = env->GetStringUTFChars( jMsg , 0);5 6 constWCHAR*strMsgPtr=(WCHAR*)env->GetStringChars(jMsg ,0);7 8 MessageBox(0, strMsgPtr,L"Message box from VC++",0);9 10 env->ReleaseStringChars(jMsg, (jchar*)strMsgPtr);11 //env->ReleaseStringUTFChars( jMsg, strMsgPtr);12 13 }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/281869.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IBM 的大型机 z Systems 引入 Go 语言

据 cbronline 报道,IBM 正把 Go 语言运用到旗下的大型机上。 IBM 将开源的 Go 语言引入到 z Systems 大型机后,可以给用户多一个的选择,即在大型机上使用 Linux 或基于 Go 的应用,同时也使大型机更加灵活。Go 语言在高并发的网络应…

WPF-10 逻辑树和可视化树

我们在WPF-03 资源之Resources结尾中介绍逻辑树和可视化树的基本概念,我们这节来介绍这两棵树逻辑树(Logical Tree)逻辑树是由每个控件的节点组成,本质上就是XAML文件中的UI元素,我们可以通过LogicalTreeHelper类提供的…

洛谷P4364 [九省联考2018]IIIDX(线段树)

传送门 题解看得……很……迷? 因为取完一个数后,它的子树中只能取权值小于等于它的数。我们先把权值从大到小排序,然后记$a_i$为他左边(包括自己)所有取完他还能取的数的个数。那么当取完一个点$x$的数之后&#xff0…

国产车崛起粉碎德日工业神话

由于二战战败,德国一大批顶尖人才被美苏瓜分,战败国地位和人才断层导致德国工业基本是第二次工业革命的产物,专精于机械、化工等传统行业,并有巴斯夫、拜尔、大众、戴姆勒、宝马等一批世界级企业。不过,德国世界级的IT…

java hibernate 分页查询_4 Hibernate HQL查询,分页查询

/*** HQL查询的一个例子*/public static void hql(){Session s null;try{s HibernateUtil.getSeesion();//final String hql "from User as u where u.name?";final String hql "from User as u where u.name:name";final Query query s.createQuery…

Linux -sed

sed ,查找sed -n /root/p passwd #列出passwd中有root的行 sed -nr /ot/p passwd #sed -r grep -E 都是进行脱意 sed -nr /0{2}/p passwd #匹配两次o的 sed -nr /root|bus/p passwd #匹配root 或者bus的 sed -n 2p passwd # 查找指定的行sed -n 2,5p passwd # 查找…

h5 端图片上传-模拟多张上传

1、由于后端的限制,上传图片到服务器只能的一张一张传2、显示图片预览是本地的图片3、根据服务器返回的结果拿到相应的路径保存到提交评论的接口中4、删除的时候,需要删除对应的路径,不要把删除的提交到评论的接口中 A、comment-detail.js va…

node安装问题

1.最好安装到默认路径,手贱安到了D盘,升级npm各种出错。 明明升级成功,查看版本时,确显示依然是老的版本。 原因:升级的是C盘的node_modules中的npm,执行时确是D盘node自带的npm,不知道为啥。。…

全新升级的AOP框架Dora.Interception[汇总,共6篇]

多年之前利用IL Emit写了一个名为Dora.Interception的AOP框架。前几天利用Roslyn的Source Generator对自己为公司写的一个GraphQL框架进行改造,性能得到显著的提高,觉得类似的机制同样可以用在AOP框架上,实验证明这样的实现方式不仅仅极大地改…

java string转decimal_java中string转bigdecimal的例子

小编知道在java中数据类型非常 的严格了,我们如果一个地方不小心就会导致应用出问题了,今天 小编就在string 转BigDecimal上碰到了一些问题,下面整理了几个例子大家一起来看看。例子1,string 转BigDecimalpublic class Test{public static vo…

通过url来设置log4j的记录级别

2019独角兽企业重金招聘Python工程师标准>>> 直接看代码。 import org.apache.log4j.AppenderSkeleton; import org.apache.log4j.Level; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotati…

通过用户模型,对数据库进行增删改查操作

增加:user db.session.add(user)db.session.commit() #增加 user User(username JACKSON,password0328 ) db.session.add(user) db.session.commit() 查询:User.query.filter(User.username mis1114).first() #查询 userUser.query.filter(User.usern…

Android OpenGL ES(七)----理解纹理与纹理过滤

1.理解纹理 OpenGL中的纹理能够用来表示图像。照片,甚至由一个数学算法生成的分形数据。每一个二维的纹理都由很多小的纹理元素组成。它们是小块的数据,类似于我们前面讨论过的片段和像素。要使用纹理,最经常使用的方式是直接从一个图像文件载…

WPF 基础控件之托盘

WPF 基础控件之托盘控件名:NotifyIcon作者: WPFDevelopersOrg - 吴锋|驚鏵原文链接: https://github.com/WPFDevelopersOrg/WPFDevelopers框架使用大于等于.NET40。Visual Studio 2022。项目使用 MIT 开源许可协议。新建NotifyIcon自定义…

java 匿名 异常_JAVA类(内部类、匿名内部类、异常、自定义异常)

内部类package AA;public class类 {int de123;StringBuffer deenewStringBuffer();public class成员内部类{public voidff() {System.out.println("这是成员内部类方法");}}/*1.可以访问外部类所有的成员,包括被声明为私有(private)的;2.可以使…

ASP.NET 多环境下配置文件web.config的灵活配置---转

注意:本功能在.Net Core中已经不可用,暂时需手动修改web.config中的信息,或者将其设置在appsettings.XXX.json中,然后再使用web.config中的环境变量来制定使用的具体appsettings文件。 转自:https://www.cnblogs.com/h…

英语之各类人群

工作狂:workaholic 月光族:moonlight group 电灯泡:third wheel 菜鸟:newbie 夜猫子:night owl 路痴:somebody has no sense of derection 宅男宅女:homebody 时尚的潮人:trend sett…

Wget CVE-2014-4877:FTP 符号链接任意文件系统访问

Wget 爆出 CVE-2014-4877 漏洞:FTP 符号链接任意文件系统访问。 Package: wgetVersion: 1.15-1Severity: important Upstream fix: http://git.savannah.gnu.org/cgit/wget.git/commit/?id18b0979357ed7dc4e11d4f2b1d7e0f5932d82aa7 References&#xf…

JavaScript 学习提升

javascript 技能提升 理解闭包 闭包,官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。闭包的特点:1. 作为一个函数变量的一个引用…

Uranium UI Kit

Uranium UI Kit控件名:Uranium UI Ki作者:enisn原文链接: https://github.com/enisn/UraniumUI项目使用 Apache-2.0 开源许可协议。Uranium 是用于 .NET MAUI 的免费和开源 UI 工具包。它提供了一组控件和实用程序来构建现代应用程序。它建…