java中能否方便的调用c++开发的类封装的对象?

book_codepeasant 2012-06-28 03:02:10
我正在开发一套设备的应用接口,是准备用C++开发的。有部份客户是使用java平台开发应用的,所以我设计api时希望java用户能够方便的使用。

查看了一些资料,java可以用JNI方便的调用c++写的dll中的接口函数,可以找到很多例子。但是所有例子都是介绍调用接口函数的,就是说dll都是由单个的函数组成的。我想希望的能用c++设计出用类封装的动态链接库,但是不知道java是否可以方便的调用动态库中的类对象呢?
...全文
249 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenshuang_com 2012-07-17
  • 打赏
  • 举报
回复
不能直接调用,java只能调用函数
book_codepeasant 2012-06-28
  • 打赏
  • 举报
回复
谢谢回答。楼上的几位都没有明白我的问题,我并不是想问是否可以直接调用的问题,我是想问能否调用用c++设计的class,而非函数。

能查到的很多的使用JNI的例子,都是调用动态链接中的函数的。也就是说dll本身是由函数封装而成的,可如果是class呢,如何调用?
YOULOVEXIA 2012-06-28
  • 打赏
  • 举报
回复
不能直接调用
JieTouLangRen 2012-06-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

直接调用是不行的,jni只认特定名称的函数

如果你想调用已有的dll文件的话,按照一下步骤做:

1、设计java文件,使其每一个native函数对应已有dll的函数
2、用javah命令从class文件中生成.h头文件
3、将.h文件里面的所有函数实现一遍,每个函数内部调用并返回已有dll的函数的结果
4、生成jni的dll文件,把它和原先的dll文件一同放到PATH对应的路径……
[/Quote]
++
周靖峰 2012-06-28
  • 打赏
  • 举报
回复
直接调用是不行的,jni只认特定名称的函数

如果你想调用已有的dll文件的话,按照一下步骤做:

1、设计java文件,使其每一个native函数对应已有dll的函数
2、用javah命令从class文件中生成.h头文件
3、将.h文件里面的所有函数实现一遍,每个函数内部调用并返回已有dll的函数的结果
4、生成jni的dll文件,把它和原先的dll文件一同放到PATH对应的路径下,之后就能用java调用了

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧