gpt4 book ai didi

java - 使用 JNA 访问 .dll 时通过引用传递字符串

转载 作者:行者123 更新时间:2023-12-01 11:14:04 25 4
gpt4 key购买 nike

我需要使用 JNA 从 Java 调用 dll。

我需要调用的dll头文件中函数的定义是这样的:

bool DmgrGetVersion(char * szVersion);

所以我需要在Java中重新定义一个接口(interface),函数就变成了:

boolean DmgrGetVersion(String szVersion);

但是,我需要通过引用传递字符串,这意味着我的传入字符串变量需要从函数的参数接收新值。我该如何实现这一目标? (例如,如果我调用 DmgrGetVersion(ver) 并且函数中的 szVersion 在函数末尾被分配“1.0.1”,则 ver 也需要被分配“1.0.1”)

我听很多人说可以用String[] str = new String[1]StringBuilder或者StringBuffer,但是不行对于我的情况,因为我无法更改函数的内容,因为我没有 dll 的源代码。 (我拥有的只是头文件以及.lib和.dll文件)

顺便说一句,JNA 文档中没有 char* 的类型转换。 (仅限 char 和 const char* 和 char**)

那么我还有可能实现我的需求吗?谢谢大家

最佳答案

字符串是Java中不可变的对象。您无法更改 String 对象的内容。 String[] str = new String[1]char**

类似

关于java - 使用 JNA 访问 .dll 时通过引用传递字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32043108/

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