问题标签 [jna]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5128 浏览

java - 从 Java 调用 Windows 内核函数的最简单方法是什么?

在寻找如何做到这一点时,我发现了一些关于不同选项的模糊讨论,比如 JNI 与 JNA,但具体示例不多。

上下文:如果 JavaFile.renameTo()不能完成它的工作(无论出于何种原因;它有点问题),我想直接使用这个在 kernel32.dll 中定义的本机 Windows 函数(来自这个答案):

那么,无论使用哪种方法,您将如何从 Java 代码中调用该函数呢?我正在寻找最简单的方法,使用最少的非 Java 代码或额外的步骤(例如在编译或部署中)。

0 投票
2 回答
2056 浏览

java - 支持良好的 Java ADSI 包装库?

有谁知道适用于 Java 的 Windows ADSI 库的良好包装器?

(我试图避免在 JNA 中编写自己的 - 我想使用一些标准的东西。)

0 投票
5 回答
8149 浏览

java - 如何在 JNA 中映射枚举

我有以下枚举我如何在 jna 中映射?

这个枚举在结构中被进一步引用。

阿卜杜勒哈利克

0 投票
1 回答
9893 浏览

java - 如何使用 JNI 或 JNA 读取窗口标题?

期待重返发展空间;主要使用Java调用一些本机win32函数(我不想在.NET中构建)......

有人可以指出我可以使用Java(JNI / JNA / SWIG)从不同的运行窗口中读取标题的地方。假设您知道您尝试挂接的应用程序在内存空间的哪个位置。

0 投票
3 回答
2829 浏览

java - JNA 未定义符号

我正在尝试使用 JNA将dhcpctl库绑定到 Java。这是 mi 代码(我还没有声明所有函数):

dhcpctl使用omapi库来调用远程 DHCP 服务器。所以,当我尝试加载库时:

它引发以下错误:

omapi__type__generic是存储在 omapi.h 中的外部变量。我想我必须在加载库时进行某种链接,但我不知道该怎么做。

非常感谢。

0 投票
2 回答
1563 浏览

java - 是否有为 Delphi (Win32) DLL 创建 C 头文件的工具?

到目前为止,我只看到了为给定 C 头文件创建 Delphi 代码的工具和一些信息。

但是,在“Delphi first”的情况下,有一个 Delphi 接口声明和一个生成的 DLL,并且没有 C 头文件。是否有工具可以提取必要的信息并为 DLL 构建 C 头文件?

这样的工具在跨语言/跨平台项目中可能会有所帮助并节省时间。例如,使用 C 头文件,使用jnaerator自动创建 Java JNA 绑定代码会更容易。工具链如下所示:

Delphi 源代码 -> 创建 C 头文件 -> 转换为 Java 绑定 -> 从 Java 使用 Delphi DLL

0 投票
2 回答
1929 浏览

java - JNA - 访问冲突,JVM 终止

我正在调用一个 DLL,并将一个回调函数对象传递给它。其中一项功能是简单打印。然后,我有一个 100 次迭代的循环,只打印索引和循环后的一些打印。


这是C代码


这是Java代码

输出是数字 0..41(是 41 !!!不是 99),然后是“在从 Java 调用的开始中”,然后是可怕的崩溃:

我已经阅读了很多(这里也是)但我找不到问题。我正在运行 Java6 的 JRE。我的机器上有 1.5GB 的内存。DLL 不被任何其他进程使用(没有并发问题)。

谢谢,阿兹瑞尔

0 投票
4 回答
5482 浏览

java - 使用 JNA 将 C DLL 中的 char * 映射到 Java

我有一个 C++ DLL,我需要调用它返回的函数char*。我在本机声明中使用字符串,但得到类似????或一些废话的输出。我必须解码字符串吗?我已经像这样设置了我的系统属性:

0 投票
1 回答
4829 浏览

java - JNA 加载 .a/.lib 库

我正在尝试为 libfaad2 编写 jna 映射。该库使用 mp4ff 来解析 mp4 文件。mp4ff 在 windows 上编译为 libmp4ff.lib,在 linux 上编译为 libmp4ff.a。JNA 仅查找 .dll/.so 文件。那么如何将这个 mp4ff 加载到 jna 中呢?

编辑

我认为这个问题有答案。我讨厌 AAC,我花了 4 天时间用 ffmpeg 调试无效的内存访问,现在 libfaad 使用了一些奇怪的库。:(

0 投票
2 回答
464 浏览

java - 用 JNA 包装 BSD select()

我需要使用 JNA 将类似 BSD 的 C 套接字 API 包装到 Java。它具有与标准 BSD 套接字 API 基本相同的功能。

包装select()是有问题的,因为fd_set它的参数中需要 - 结构以及处理s所需的FD_*屏蔽函数(宏) 。fd_set我试图浏览头文件(例如 Ubuntu 8.04 中的 sys/select.h),但定义并不那么简单。特别是我发现很难找到FD_*-macros 的实现,当用 JNA 的 InvocationMapper 包装它们时需要它。

注意:我不是要包装标准的 TCP 或 unix-socket API,而是自定义的。因此,Java 中的内置套接字不符合要求。