可以在java中访问c++中创建的指针吗?

Can you access a pointer created in c++, in java

本文关键字:指针 创建 访问 java c++      更新时间:2023-10-16

是否可以在java中访问c++中创建的指针?就像我创建一个字符串,并在c++中为变量创建一个指针(给变量一个内存位置)在java中是否有一些命令可以让我获取该指针并查看它?或者我必须将字符串输出到文件,然后执行java文件I/o。

你必须通过JNI将它转换成java可以理解的东西——JNI将有一个方法将你的指针转换为字符串,但是java将复制内存并从中创建一个常规的java字符串——在将内存给java后更改内存不会改变java字符串。

我不认为JNI允许通过直接内存访问进行通信,但我可能错了,我最近没有看过

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

但是在你开始之前,你应该评估一下你是否真的需要这样做。你只是想分享数据吗?你可以利用人际关系来做到这一点。在两个程序之间传递tcp消息。有很多共享数据的选项