2011-11-03 42 views
0

是否有可能访问java中用C++创建的指针?就像我创建一个字符串并在C++中为变量指定一个变量(给变量一个内存空间),是否有一些命令可以让我使用该指针并查看它?或者我必须输出字符串到一个文件,然后预制java文件I/O。你能访问一个在C++中创建的指针,在java中

+0

我相信你可以获得价值,虽然我怀疑你可以用它做很多事情。 – Pubby

回答

1

你将不得不将它转换成Java通过JNI理解的东西 - JNI将有一个方法来将你的指针转换为一个字符串,但是随后Java将复制内存并且将创建一个普通的Java字符串 - 在给java之后改变你的内存不会改变Java字符串。

我不认为即使JNI允许通过直接内存访问通信,但我可能是错的,我最近没有看过它。

+0

另一种方法是JNA,它可以更简单使用。 –

0

您应该能够使用JNI:http://java.sun.com/docs/books/jni/ 您也可以尝试使用痛饮:http://www.swig.org/

但如果你真的需要做的,你在你潜水前,应评估。你只是想分享数据吗?你可以使用网络来做到这一点。在两个程序之间传递一个tcp消息。存在许多用于共享数据的选项。

+0

单独添加网络通信以在Java和C++代码之间共享数据可能不必要的复杂。 –

+0

@ AndyThomas-Cramer我不确切知道这张海报试图完成什么。我只是鼓励他去探索他的选择以找到最佳解决方案。 – anio

+0

是的,我只是试图在程序之间交换数据,但只通过文件I/O在C++中完成。我应该这样做吗?有输出的数据,然后在java中读取它? – JAW1025