【发布时间】:2018-01-03 02:57:20
【问题描述】:
我的问题是 JNI 如何获取本机方法的返回值并将其提供给 JVM(推入本机堆栈)。
例如,如果我有一个本机方法toString,并且JVM 知道toString 方法的代码在哪里,那么JNI 如何调用该方法?
【问题讨论】:
-
WTF? JNI 调用的返回值与“system()”的返回值有什么关系。除了“返回???”这个词另见:JNI String return value
-
是的,我同意你的观点,但我的问题是如何调用本机方法,然后如何获取返回值。如果你想要一个不同的问题但同样的事情:如何使用 C++ 从另一个文件中调用一个函数并从中获取返回值。(没有序列化)
-
@paulsm4 我想知道这个虚拟机是如何工作的,不知道如何将一个字符数组转换为java字符串。
-
建议:在 ONE 平台上研究 ONE 语言的“传递返回值”的 ONE 方法。了解它是如何工作的。然后通过与某些 DIFFERENT 平台和语言(例如 Java JNI)上的某些 DIFFERENT“返回值”进行比较来应用这种理解。关于 C++ 函数调用的好文章:x86 calling conventions
标签: java jvm java-native-interface