如何在 Java 中 调用 C/C++ 函数
xday 2002-10-21 08:03:19 我需要在 java 中调用 C/C++ 函数,我使用了 Jini ,但现在有一个问题:如果向 C 函数中传递一个 Struct 变量。例如:
C:
Struct T
{
int a;
int b;
}
f(T* t)
{
.....
}
我该如何在 Java 中调用 f(T* t)呢?
我现在的障碍在于 Java 没有 Struct,我的目的是从 Java 调用 C/C++ 程序,从 Java 需要传递给 C/C++ 的参数有 6 个,其中 5 个用来返回 C/C++ 函数处理后的结果。因为参数有 6 个,所以我希望把参数包在里。
事实上,解决的办法也有,最简单的就是,把这 6 个参数,一个一个地单独传进去:
f(arg1,arg2...arg6)
如果讨厌这种方法参数太多,还可以用 JNIEnv->GetArg1().... 定义 6 个 Get 方法,在 C/C++ 中调用,获得参数。
我觉得这两种方法都很愚蠢,很不自然,优美。实在不想用。
请问我得问题是否有一个优雅的解决方案呢?