[发明专利]基于JNI的C++中JAVA函数调用方法有效

专利信息
申请号: 201711336832.0 申请日: 2017-12-14
公开(公告)号: CN107832056B 公开(公告)日: 2020-12-18
发明(设计)人: 李波 申请(专利权)人: 苏州蜗牛数字科技股份有限公司
主分类号: G06F8/40 分类号: G06F8/40
代理公司: 北京德崇智捷知识产权代理有限公司 11467 代理人: 王金双
地址: 215000 江苏省*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 jni c++ java 函数 调用 方法
【权利要求书】:

1.一种基于JNI的C++中JAVA函数调用方法,包括以下步骤:

使用C++可变参数模板和模板特化,实现编译期JNI数据类型签名的字符串值字面对象,并预置JNI支持的数据类型签名,建立JNI接口;

使用C++可变参数模板和模板特化,实现编译期JNI数据类型签名的字符串值字面对象,进一步包括,使用C++模板实现模板递归和特化,生成保存JNI数据类型签名的字符串值字面对象;

调用JAVA函数后,使用C++可变参数模板和模板特化实现C++、JNI之间的数据类型转换和生成函数签名;

所述使用C++可变参数模板和模板特化实现C++、JNI之间的数据类型自动转换的步骤,进一步包括,

通过C++模板元编程特化出C++数据类型到JNI数据的映射关系和转换函数;

通过C++模板元编程特化出JNI数据类型到C++数据类型的映射关系和转换函数;

通过C++模板元编程特化出C++数组类型到JNI数组类型的转换函数;

通过C++可变参数模板特性和模板特化实现C++与JNI不定参数函数的调用;

所述生成函数签名,进一步包括,在调用JAVA方法时,传入JAVA的类路径,方法名,以及参数,所述参数类型为C++类型;根据参数的个数和类型推导出参数签名,根据返回值类型推导出返回值签名;然后通过参数签名和返回值签名组成了函数签名;

通过函数签名调用JNI接口查找JAVA函数;

找到JAVA函数后,使用C++可变参数模板和模板特化实现C++到JNI的数据类型转换,使用转换过后的JNI的数据类型进行JAVA函数调用;

进行函数执行结果从JNI数据类型转换为C++数据类型,最终返回结果。

2.根据权利要求1所述的基于JNI的C++中JAVA函数调用方法,其特征在于,所述实现编译期JNI数据类型签名的字符串值字面对象的步骤,包括,利用C++可变参数模板的特性以及模板特化特性实现模板递归,每一层递归保存一个静态字符,最终整套递归就是一个完整的字符串值字面对象;通过编译期字符串值字面对象预置JNI数据类型签名,以供通过C++对象映射JNI对象。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州蜗牛数字科技股份有限公司,未经苏州蜗牛数字科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201711336832.0/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top