问题标签 [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 投票
0 回答
1357 浏览

java - JNA 库 - Mac OS X 上的问题

这是一个关于 Java 程序中 JNA 库的问题。

我有一个托盘应用程序。“JFrame 1”在程序开始时加载。“JFrame 1”具有自定义形状并具有透明度。(自定义形状 = 椭圆)它适用于 Windows、Linux 和 Mac OS X。

但!

当我打开“JFrame 2”(没有自定义形状和透明度的普通 JFrame)时,“JFrame 1”将失去它的自定义形状并显示一个普通的未装饰框架。(正方形)这只发生在 Mac OS X 上。

我已经搜索了互联网,但没有运气。也许你可以帮助我。

谢谢,詹尼

0 投票
1 回答
1103 浏览

javascript - 使用 JNA、Rhino、JavaScript 分配 char 缓冲区

在 Narwhal 中,我们使用 JNA 来libc调用getcwdchdir. 我只能在对 JNA 接口了解有限的情况下使用它,因为它与 Rhino 中的 JavaScript 相关,专门处理原语。我需要知道如何分配一个 char 缓冲区,以便我可以将它传递给getcwd,从该缓冲区中检索一个 JavaScript 字符串,并取消分配缓冲区,大概是在一个finally子句中。

下面是我们如何抓取libc界面:

http://github.com/280north/narwhal/blob/34ac15261fa4acdef3867256e97d7aabb94766e0/engines/rhino/lib/fs-base.js#L32-42

下面是如何chdir实现的:

http://github.com/280north/narwhal/blob/34ac15261fa4acdef3867256e97d7aabb94766e0/engines/rhino/lib/fs-base.js#L438-444

这是我们需要解决方案的地方getcwd

http://github.com/280north/narwhal/blob/34ac15261fa4acdef3867256e97d7aabb94766e0/engines/rhino/lib/fs-base.js#L416-419

Ruby 或任何其他 JNA 嵌入式语言的解决方案会有所帮助。

0 投票
1 回答
1231 浏览

java - Java 透明 JFrame、JVLC 和 java.awt.Canvas

我正在尝试在提供的 JVLC 库的视频流之上实现透明 JFrame 的效果。背景是 java.awt.Canvas 的一个实例,前景是我的任何 JFrame,上面有几个控件。

rootPane.setForeground(myFrame); rootPane.setBackground(myCanvas);

JVLC 像这样通过 JNA 使用我的画布 jvlc.setVideoOutput(myCanvas); jvlc.apply();

我希望 myFrame 对 myCanvas 始终透明。任何想法如何获得这项工作?

0 投票
4 回答
13676 浏览

java - Java Native Access 不支持 C++,对吧?

我在网上找到了许多关于 JNA 用于 C++ 库的参考资料(包括一些关于 stackoverflow 的参考资料),但我在 JNA 文档中找不到任何东西表明这是可能的。特别是,似乎没有任何方法可以包装 C++ 类。

我需要本地访问才能使用 RTAudio,但 RTAudio 的所有函数都是 RTAudio 类的成员函数。所以只是为了确认,JNA 不是正确的方法吗?

0 投票
1 回答
393 浏览

java - 解释 Java 原生通信性能

现在,我正在使用 JNA 进行 Java 原生通信,并且对它的简单性感到满意。但是我确实需要优化性能并且正在考虑使用其他绑定。

我的问题是:Java 原生通信的哪一部分是“昂贵”的部分?是它们之间的数据传递吗?

让我换一种说法。现在我的 JNA 接口调用的函数根本不向 Java 传递任何数据,而且这些函数甚至不经常被调用。换句话说,Java 调用一个库调用,然后该库调用自己做一段时间并返回一个原始类型。在那种情况下,JNI/Swig/etc 会比 JNA 快吗?

0 投票
1 回答
580 浏览

java - 使用 JNA 优于流程执行的优势

我有一个项目,目前使用java.lang.Process. 假设它们的功能也以本机库形式提供,那么使用JNA执行所述库函数有什么好处?

流程执行相当繁重 - 它们需要几秒钟才能完成。我认为性能提升将是最小的是否正确?

0 投票
1 回答
740 浏览

jna - PVOID 的 JNA 等效项

PVOID 在 JNA 中的表示是什么?

0 投票
1 回答
851 浏览

java - char** 的 JNA 问题(在 dll 中)

好的,使用 jna 制作用于在 dll 中映射导出函数的 jna 包装器解决方案很“容易”:

但是怎么处理long f3(char** z)

我需要f3' 的结果(长)以及zjava 端的值。

请不要说应该重写 cpp 代码以避免这种情况:-)

0 投票
1 回答
13650 浏览

java - 如何使目标库可用于我的 Java 应用程序?

使用 JNA,文档说:

使您的目标库可用于您的 Java 程序。有两种方法可以做到这一点: 首选方法是将jna.library.path系统属性设置为目标库的路径。此属性类似于java.library.path但仅适用于 JNA 加载的库。

这实际上意味着什么?如何设置jna.library.path系统属性?我的应用需要参考Kernel32.dll

谢谢

0 投票
2 回答
3361 浏览

java - 通过 JNA 使用 Xlib 移动窗口

我正在使用 JNA 通过发送 Xlib 消息来操作 Linux 上的应用程序窗口,但似乎无法移动窗口。

我最初的实现在 shell 上执行 wmctrl 来移动窗口并成功移动了窗口。不幸的是,从 Java 调用 shell 程序会产生大量开销,所以现在我尝试使用 JNA 进行直接 API 调用。我正在使用 JNA 网站上提供的 X11 示例,并且可以成功完成一些技巧,例如枚举窗口 ID 和读取窗口属性,所以我知道 JNA+Xlib 至少部分工作。

首先,我尝试直接使用移动​​窗口,XMoveWindow()但窗口管理器显然阻止了这些调用。

我遇到了一个线程,该线程建议我需要使用 发送客户端消息XSendMessage(),所以我在下面完成了该操作,但显然XSendMessage()失败了,因为窗口没有移动并且我得到了返回值0. 我猜我遗漏了一些明显的东西,但不能完全弄清楚。有什么建议么?

请注意,就本示例而言,main 方法具有硬编码的窗口 ID。这是我要移动的窗口的窗口 ID(wmctrl -l在控制台上使用)。