Tag: jni

使用JNI将字符串数组从java传递给C.

我有一个字符串数组,如{“myname”,”yourname”,”hisname”} ,我试图使用JNI将此数组发送到C. 我找不到任何明确的解决方案。 我试图把这个字符串作为一个chararray但没有成功。 有没有办法做到这一点?

没有应用程序焦点的Java中的事件监听器? (全球按键检测)

我一直在寻找一段时间,每个人似乎都认为只使用Java是不可能的,所以我会给你一个镜头;) 有没有办法让我的Java应用程序监听事件(特别是关键事件),而另一个不相关的应用程序有窗口焦点? 在我的情况下,即使我的Java应用程序没有焦点,我也想要检测用户何时按下了键盘上的“Pause”键。 我听说有些人提到唯一的方法是编写一些C代码并使用JNI。 只是好奇是否有人知道如何避免这种情况? 或者,如果没有,至少是关于c / JNI的非常好的教程? 谢谢

使用SWIG生成Java接口

我正在使用SWIG来创建一个C ++库的Java包装器(关于Json(de)序列化)以在Android上使用它。 我在C ++中定义了一个抽象类,表示可以(反)序列化的对象: class IJsonSerializable { public: virtual void serialize(Value &root) = 0; virtual void deserialize(Value &root) = 0; }; 现在,我正在尝试从这个类生成一个Java接口。 这是我的SWIG界面: %module JsonSerializable %{ #include “JsonSerializable.hpp” %} %import “JsonValue.i” class IJsonSerializable { public: virtual void serialize(Value &root) = 0; virtual void deserialize(Value &root) = 0; }; 但是生成的Java代码(显然,因为我无法找到如何告诉SWIG这是一个接口)一个简单的类,有两个方法和一个默认的构造函数/析构函数: public class IJsonSerializable { private long […]

Java Native Access不做C ++,对吧?

我在网上发现了许多用于C ++库的JNA在线(包括一些关于stackoverflow的参考资料),但我在JNA文档中找不到的任何内容都表明这是可能的。 特别是似乎没有任何方法可以包装C ++类。 我需要本机访问才能使用RTAudio,但RTAudio的所有函数都是RTAudio类的成员函数。 所以只是为了证实,JNA不是正确的方法吗?

将Java嵌入到C ++应用程序中?

我得到了一个用C ++编写的应用程序,我可以通过在C ++中编写插件来扩展应用程序function。 我基本上想要做的是将Java嵌入到这个应用程序中。 这已经用Python完成了(不是由我完成的)。 我读了一些关于JNI的内容,但总是有一个使用Java类的完整程序的演讲。 我想做的是,使用Java中的C ++类来与应用程序进行交互。 在这种情况下,它是一个3D应用程序,称为Cinema 4D。 有没有办法在应用程序运行时(使用某种脚本语言)使用JNI或类似的东西编译和评估Java代码? 嵌入完成后的虚构代码示例: import c4d.documents.*; class Main { public static void main() { BaseDocument doc = GetActiveDocument(); BaseObject op = doc.GetActiveObject(); if (op != null) { op.Remove(); } } } 此代码应与Cinema 4D交互以删除所选对象。

在Java中获取活动窗口信息

我正在尝试使用Java升级我的应用程序,只有在具有特定名称的进程窗口处于活动状态时才能工作。 我发现使用JNI可以做到这一点,但我不知道究竟是怎么做到的。 我找不到任何可以解释它的描述或例子。 我的问题是 – 如何在Windows中获取当前活动窗口的进程名称(通过JNI,或其他任何 – 我接受任何其他解决方案)?