问题标签 [bridj]

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 投票
1 回答
895 浏览

java - 由于希伯来语用户名,无法使用 bridj 加载外部 dll

我试图通过 Windows 7 上的 BridJ 将本机库 ( lib.dll ) 加载到 Java 应用程序,其中用户名是用希伯来语编写的。

重要的是 Java 应用程序下载lib.dll并将其正确保存到位:

我参考了该文件-> 文件库,并传递lib.getCanonicalPath()给 BridJ。

最后我得到以下异常:

所以看起来,getCanonicalPath()将 דני 转换为。

我该如何解决?

0 投票
2 回答
1467 浏览

java - JNAerator - 使用 typedef 生成的接口

我正在尝试使用 JNAerator 从 typedef 指令生成的接口,但我找不到这样做的方法:

.h 文件中的函数是:

头文件还包括原始的 typedef 指令:

JNAerator 生成:

方法:

界面:

和课程:

问题是,我不知道如何LPCWSTR使用PointerLPCWSTR接口实例化一个对象,使用一个字符串,以便我可以将它传递给Initialize方法。

我怎样才能做到这一点?

更新:

我修改了 .h 文件以使用wchar_t*

JNAerator 生成的方法如下:

所以我这样称呼它:

问题是我得到以下异常:

在这一行:

我究竟做错了什么?

0 投票
1 回答
607 浏览

java - 在 Android 中使用 BridJ 时出现 UsatisfiedLinkError

目前我正在为 Android 使用BRIDj-0.6.1-android.jar。问题是库显示不满意的链接错误,如下所示:

我将libcrypto.so文件保存在我的 Android 项目的lib/armeabi/路径中。

我该如何解决这个问题?

0 投票
1 回答
990 浏览

java - BridJ:无法获取方法的地址

BridJ 找不到共享库的方法。我需要帮助来理解为什么。

该库由 JNAerator 生成。

mn -glib.so 的:

图书馆的标题:

Java代码:

在日志中运行此应用程序时:

但是方法CreateClass是成功找到的。

这是为什么?

0 投票
1 回答
218 浏览

memory - JNAerator BridJ 运行时静态方法实例内存

所以我最近更新了我的 JNAerator 并开始使用新的 BridJ 运行时,我正在尝试调试我遇到的一个问题,我不确定它是我的库的代码还是 JNAerator 本身。

基本上在我的 C 库中,我有一个init()方法可以跨其他 C 库方法在内存共享变量中进行初始化。我注意到使用新的 BridJ 运行时和为我的库生成的 Java 代码仅创建静态方法的新注释。这是否会导致我的 C 库在对各种静态 Java 方法的不同调用中维护内存值时出现问题?

0 投票
1 回答
1227 浏览

java - 来自 java 的 hunspell 和个人字典

我有两个选项可以从 java 中使用 hunspell:

  • Hunspell JNA 或
  • Hunspell BridJ

它们都工作正常,但我想使用 hunspell 的“个人字典”功能(从命令行调用 hunspell 时,-p 参数)。

有没有办法使用带有此参数的 Hunspell JNA 或 BridJ,或者具有相同的功能?

0 投票
1 回答
82 浏览

android - 是否建议将 Bridj 用于 OpenCV?

我一直在寻找包装我的 C++/OpenCV 代码并将其移至 Android 的方法。

到目前为止,JNI、JNA、JNAerator、SWIG 等我发现 Bridj 更容易理解和使用。Bridj 是我的 Android 版 OpenCV 源代码的良好绑定吗?我找不到很好的示例来解释有关为 Android 包装 OpenCV/C++ 的任何内容,此时我不确定是否应该使用 Bridj。

任何帮助深表感谢。

0 投票
1 回答
283 浏览

java - 无符号类型的 BridJ 类型映射

使用 JNAerator 生成 BridJ 代码时,它将无符号类型(例如 windows' ULONG)映射到普通 Java long

但是,Java 类型是有符号的,而不是无符号的。如果我需要手动更正,我需要使用哪些类型?像这样的字节数组?

0 投票
0 回答
243 浏览

java - 从本机到 Java 的 BridJ 回调:本机中的值是否可能被覆盖?

我想为本地库(使用 BridJ)编写一个 Java 包装器。我要包装的方法需要一个操作结构(回调):

这些操作显然应该用 Java 编写,因此method回调 Java 空间(使用 BridJ 的回调机制)。

但是,在执行 Java 回调并返回后method,C 代码中的局部变量发生了变化:

我怎样才能防止这种情况发生?

//详见https://github.com/Maxhy/dokany/issues/7

//有趣的编辑:无用指针的偏移量似乎是恒定的,在我的应用程序中,第二条调试消息始终是“192”而不是“0”

0 投票
1 回答
1337 浏览

java - 在 Java 中并使用 Bridj,如何动态调用任何本机函数?

Clojure 的用户通常希望尽可能地懒惰,并延迟类和对象的创建。本着同样的精神,如果我希望调用在运行时从 Java 中解析的本机函数,我可以使用com.sun.jna.Function.getFunction("foolibrary", "foofuncname"),它返回一个com.sun.jna.Function,它可以是invoked

在 Clojure 中,这看起来像:

另一方面,BridJ 提供了有吸引力的性能优势并声称 API 更简单,但是,我仍然不清楚如何使用 BridJ 来执行类似于运行时绑定 JNA 示例的操作。有人可以演示如何吗?此外,如果这是可能的,这种方法是否有任何性能损失?否则,似乎提前生成 Java 源文件是唯一的解决方案。如果有人能证实这一点,我将不胜感激。