gpt4 book ai didi

java - 将 void** 指针转换为等效的 Java 类型

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:29:38 24 4
gpt4 key购买 nike

我正在从用 Java 编写的程序中加载 C DLL。我希望能够使用此声明从 DLL 调用其中一种方法:

dll_function(const char* foo1, const char* foo2, const char* foo3, void** bar, size_t* bar2);

如何在 Java 中使用正确类型的参数调用此方法?我知道(理论上)如何调用它,但我想知道的是如何传递“void** "和 "size_t*"来 self 的 Java 程序?基本上,我想知道 void 和 size_t*** 的“等效类型”是什么在 Java 中...

我找到了 Pointer 类但没能让它工作?非常感谢:)

最佳答案

几年前我从事 Java/JNI/C 项目,我们必须在 Java 对象中维护不透明的 C 指针。我们在 Java 端使用 long 值来保存 C 指针,这些指针在 JNI 端从 jlong​​ 转换为 void* 或任何指针我们需要的类型。

由于 Java long 类型是 64 位宽,而 JNI/C 指针通常是 32 位或 64 位宽,因此我们在它们之间进行转换没有任何问题。

关于java - 将 void** 指针转换为等效的 Java 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16018387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com