从Java发送数据到C++ Graalvm

huangapple 未分类评论53阅读模式
英文:

Send data from Java to C++ Graalvm

问题

我正在使用GraalVM在Java和C++中进行多语言编码。我有以下代码在Java中调用C++来打印消息:

printMessage.cpp C++ 代码:

#include <iostream>

int imprimemensaje(std::string s);

int main() {
    int imprimemensaje(std::string s);
    std::cout << "Hello, C++ World!" << std::endl;
    int a = imprimemensaje("Hola mundo c++");
}

int imprimemensaje(std::string s){
    std::cout << "Mensaje desde c++ : " << s << std::endl;
    return 0;
}

以及在Java中使用execute()执行C++对象的代码:

File file = new File("printMessage");
Source source = Source.newBuilder("llvm", file).build();    
Value cpart = context.eval(source);
cpart.execute();

并在屏幕上打印出:

Hello, C++ World!
Mensaje desde c++ : Hola mundo c++

我只需要调用 imprimemensaje() 函数从Java中发送数据。我尝试过使用 cpart.getMember("IDmember") 方法,但它返回了一个空值,另外 cpart.getMemberKeys() 也没有任何项。

是否有人知道为什么会出现这种情况,或者是否有其他方法可以通过Java向C++对象发送数据?谢谢。

英文:

I'm working with GraalVM coding in Java and C++ as polyglot code. I have this code to print in C++ with Java:

printMessage.cpp C++ code:

#include &lt;iostream&gt;

int imprimemensaje(std::string s);

int main() {
    int imprimemensaje(std::string s);
    std::cout &lt;&lt; &quot;Hello, C++ World!&quot; &lt;&lt; std::endl;
    int a = imprimemensaje(&quot;Hola mundo c++&quot;);
}

int imprimemensaje(std::string s){
    std::cout &lt;&lt; &quot;Mensaje desde c++ : &quot; &lt;&lt; s &lt;&lt; std::endl;
    return 0;
}

and this code in Java to execute C++ object using execute():

File file = new File(&quot;printMessage&quot;);
Source source = Source.newBuilder(&quot;llvm&quot;, file).build();    
Value cpart = context.eval(source);
cpart.execute();

And print on screen this:

Hello, C++ World!
Mensaje desde c++ : Hola mundo c++

I need to call only imprimemensaje() function to send data from Java, I tried with cpart.getMember("IDmember") method, but it retrieves me a null value, also cpart.getMemberKeys() has no items on it.

Does anyone know why this happened or is there another way to send data to c++ object through Java? Thanks.

huangapple
  • 本文由 发表于 2020年6月29日 12:27:50
  • 转载请务必保留本文链接:https://java.coder-hub.com/62631226.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定