如何使用 unsigned int 才能使用 JNA(Java 本机接口)函数?

发布于 2024-10-31 09:41:40 字数 582 浏览 2 评论 0原文

我使用 JNA 是为了在我的 Java 应用程序中使用 C++ 库。我正在使用 Java 中的接口来使用这些功能。该函数在 C++ 中使用三个参数:一个 unsigned int、一个 const char* 和一个 long*。 JNA 在 Java 中实现了 Strings(根据其文档)以传入 char*。同样,它使用 long[] 传入 long*。然而,我对应该为 unsigned int 传入的类型感到困惑。传入的 char* 代表文件的名称,无论我对第一个参数使用什么类型,它似乎都无法识别该文件。此外,最后一个 long 类型实际上在函数执行后返回一个值。如果我使用short或int类型作为第一个参数,这个数字似乎是正确的,但是,如果我使用long类型作为第一个参数,它是不正确的。有人可以帮忙吗?

举个例子,下面是 C++ 中的实际原型,后面是我目前在 Java 中的接口原型:

int JrConnect(unsigned int id, const char* config_file, long* handle);

public int JrConnect(int[] id, String[] config_file, long[] handle);

I'm using JNA in order to use a C++ library in my Java application. I am using an interface in Java to use these functions. The function uses three arguments in C++: an unsigned int, a const char*, and a long*. JNA implements Strings (according to their documents) in Java to pass in a char*. Likewise, it uses a long[] to pass in a long*. I'm confused, however, about the type that I should pass in for the unsigned int. The char* that is passed in represents the name of the file, and no matter what type I use for the first argument, it does not seem to recognize the file. Furthermore, the last, long type actually returns a value after the function is executed. If I use the short or int type for the first argument, this number seems to be correct, however, if I use the long type for the first argument, it is incorrect. Can anyone help?

For an example, here's what the actual prototype in C++ is followed by what I currently have as the interface prototype in Java:

int JrConnect(unsigned int id, const char* config_file, long* handle);

public int JrConnect(int[] id, String[] config_file, long[] handle);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

仅一夜美梦 2024-11-07 09:41:40

使用 JNA 的 IntByReference

Use JNA's IntByReference.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文