从java调用c ++函数,而不改变c ++代码 [英] call c++ function from java without changing c++ code
本文介绍了从java调用c ++函数,而不改变c ++代码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在我的java程序中使用一些 .cpp
类和方法。例如,我有 p1.java
调用 method1
。 可在
p2.cpp
和 p2.cpp
包括 p3.cpp
。我不想更改cpp代码...
I want to use some .cpp
class and methods in my java program. For example, I have p1.java
that calls method1
. method1
is available in p2.cpp
and p2.cpp
includes p3.cpp
. I don't want to change cpp codes...
有可能吗? (我需要 .cpp
和 .header
两者。)
Is it possible? (and I need .cpp
and .header
both.)
还有更好的解决方案吗? (除了java本地接口)?
And is there any alternative better solution? (except java native interface)?
推荐答案
为什么不使用JNI在Java和C ++之间创建一个额外的层 - create:
Why don't you create an extra layer between Java and C++ with JNI - effectively you create:
method1_java_cpp_layer( JNIEnv * e, jobject o )
{
extracted_information = extract_information( e, o );
method1( extracted_information )
}
这进入java_cpp_layer.cpp 。
And this goes into "java_cpp_layer.cpp".
这篇关于从java调用c ++函数,而不改变c ++代码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文