社区
Java SE
帖子详情
java 如何调用以完成的C++类库
bbipaladin
2008-04-01 10:59:08
查看了JNI后,感觉都在java 的类中声明了“本地方法”,而我遇到的问题是要使用C++类,而不只是简单的方法。
请诸位赐教啊!
...全文
206
12
打赏
收藏
java 如何调用以完成的C++类库
查看了JNI后,感觉都在java 的类中声明了“本地方法”,而我遇到的问题是要使用C++类,而不只是简单的方法。 请诸位赐教啊!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
miaoliujun
2008-04-01
打赏
举报
回复
SWIG不但可以生成JAVA的接口,还可以生成多种语言的接口,非常不错
miaoliujun
2008-04-01
打赏
举报
回复
我看你已经在另外一个帖子中找到解决问题的方案了,SWIG
这个应该结帖了啊:)
healer_kx
2008-04-01
打赏
举报
回复
C++的接口是__thiscall的,C接口并且为JNI可以调用的是__stdcall,一调准死机。
bbipaladin
2008-04-01
打赏
举报
回复
要写C接口,这种方案太麻烦了。
我查过有个SWIG好像可以做此事,但也是在这个C++类的构造函数上面不能执行。
比如:
我们的java类的主函数内容为:
{
生成的.dll加载是正确的;
CXXClass test = new CXXClass(); //就在这里出现了问题。c++的构造函数
test.sayme();
}
healer_kx
2008-04-01
打赏
举报
回复
不可以调用! JNI调用的是C接口,而不是C++接口!
要人工的给C++接口,写出一个C接口适配层才可以使用JNI !!!!!!!!!
zhsjun
2008-04-01
打赏
举报
回复
也必须使用JNI
zoubinstef
2008-04-01
打赏
举报
回复
??
gjgj3368
2008-04-01
打赏
举报
回复
路过,帮顶
bbipaladin
2008-04-01
打赏
举报
回复
[Quote=引用 9 楼 qin_607 的回复:]
用jni调用本地的类 你可以这样做,把你要想要完成的功能在此类中完成,吧这个类注册到你java中的方法所对应的本地方法里
[/Quote]
问题的前提是:本地的类已经写好了(比如公司老早的底层平台),必须找一个通用的、简单的解决方法才是切实可行的。
有熟悉SWIG的朋友吗?
heniry_he
2008-04-01
打赏
举报
回复
用jni调用本地的类 你可以这样做,把你要想要完成的功能在此类中完成,吧这个类注册到你java中的方法所对应的本地方法里
bbipaladin
2008-04-01
打赏
举报
回复
我这些天正在整SWIG呢?就是发现这个c++构造函数这里遇到了问题。
你对SWIG熟悉吗?指点一下。
lpingxh
2008-04-01
打赏
举报
回复
学习。。。没用过
java
如何
调用
ashx_
java
调用
C#的dll
.net产生的比
java
晚,其
类库
的封装在某些方面也比
java
更优秀,更全面。比如最近在做一个OJ,看到网上的一些做法是用
java
+
c++
,
C++
用作所提交程序的测试。
c++
虽然好,但是他的编写比较复杂。因此,我选择的是C#,用.net的
类库
可以很方便的获得一个进程 (用户提交的程序)运行的时间和消耗的内存。下面是我的测试程序:首先我在网上查了一些资料:这篇文章大概传达了这样一个意思:
Java
...
SWIG,C/
C++
类库
与
Java
,Python等泛高阶语言的万能粘合剂
原文出处及讨论: http://www.blog
java
.net/calvin/archive/2005/10/24/16606.html 作者:江南白衣 按照SWIG的思路,C/
C++
是很优秀的library级代码语言,而写界面等方面则是
Java
、C#、Python们占优。所以,swig让你可以在高阶语言里
调用
C/
C++
写的
类库
,并且不是简单的跨语言
调用
,而是把
类库
编译为宿主语言里C...
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章