问题标签 [jnaerator]
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.
java - 用于生成 Java JNA 包装器的 jnaerator 的 SimpleMeaningfulExample 不起作用
我尝试了 jnaerator SimpleMeaningfulExample ( http://code.google.com/p/jnaerator/wiki/SimpleMeaningfulExample ) 并得到:
…在运行 Java 1.5.0_20 的 Mac OS X 10.5.8 和 Ubuntu 8.04 上。
我在 Mac OS X 上切换到 1.6.0_15 并再次尝试并得到:
难道我做错了什么?
更新:我将我的问题发布到users@jna.dev.java.net(请参阅此线程:https ://jna.dev.java.net/servlets/BrowseList?list=users&by=thread&from=2312620 )并收到 Olivier 的回复Chafik,JNAerator 项目所有者。总结一下:
- 我在 JNAerator 中发现了一个回归
- 他上传了一个固定的快照构建:http: //jnaerator.sourceforge.net/maven/com/jnaerator/jnaerator/0.9.3-SNAPSHOT/
- 该构建效果更好,但没有生成 TestLibrary.java
- 我提交了一个错误报告:http ://code.google.com/p/jnaerator/issues/detail?id=50
更新 #2: Olivier在意识到缺少 TestLibrary.java 不是错误后再次做出回应,因为它默认嵌入在生成的 Test.jar 文件中。
java - 结构中缺少 JNAerator 未命名联合
我试图让 JNAerator 从 C 共享库生成一些 JNA 支持的 Java 代码,一切都很好,只是它无法生成嵌套在结构内的未命名联合。
例子:
如果我更改标题以使联合具有名称,它将起作用。但是由于显而易见的原因,我不能只更改标题而不破坏我尝试使用的共享库。
除了将头文件和共享库更改为命名联合之外的任何解决方案?
arrays - JNA:如何访问结构中的结构数组?
我正在尝试访问结构内的结构数组。这是相关的 C 代码简化为问题:
在 C 中访问数组就像这样简单:
我如何在 Java 中实现它?我问这个问题是因为我是 JNA 的新手。到目前为止,我阅读了 JNA 文档并尝试了每个与我的问题有关但没有运气的示例......
我使用 JNAerator 来转换头文件。我不知道结果是否正确:
任何帮助,将不胜感激。
java - 包装 C 头文件以将其与 dll 和 JNA(erator) 一起使用
我有一个需要访问的某个库的 C 头文件。因此,我使用 JNAerator 进行了无聊的代码转换——在我读到这些天人们推荐它之后。从我所看到的看来似乎很可靠:
完整的代码在我的GitHub 上。
现在我想将 dll 实例化为一个对象,并将我编写的接口中的头信息作为包装器传递:
令我惊讶的是,这不起作用。.Z3_config() 是抽象的。mk_config 是静态的和本机的。所以我也无法解决这个问题....实际上我认为需要将 Path 作为参数传递给 Native.loadLibrary 函数来定位 dll。我将 dll 放在与 Java 类相同的路径中。这令人困惑,我怀疑也是错误的。
那么实例化 JNAerator 生成的接口的正确方法是什么?
maven - 如何分叉每次调用 maven 插件时运行的 JVM 进程?
我在多模块(聚合器)maven 项目中使用代码生成插件( maven-jnaerator-plugin )。其中两个模块需要运行代码生成。但是,只有第一个模块可以正确生成源,而第二个模块失败。
有没有办法告诉 maven 在单独的 JVM 进程中运行插件,这样就不会发生这种干扰?插件本身不公开任何此类配置(例如“fork”)。
pointers - JNA:指向结构指针的指针
我有一个函数调用:
long foo(mystruct **list)
其中的定义mystruct
是
我正在尝试获取与 bar 对应的 (JNA) Structure[]。我当前的函数定义是int foo(PointerByReference list);
因为这就是指向指针的指针,但我不知道如何获取结构 []。
在 C 中,代码使用如下:
java - JNAerator - 使用 typedef 生成的接口
我正在尝试使用 JNAerator 从 typedef 指令生成的接口,但我找不到这样做的方法:
.h 文件中的函数是:
头文件还包括原始的 typedef 指令:
JNAerator 生成:
方法:
界面:
和课程:
问题是,我不知道如何LPCWSTR
使用Pointer
和LPCWSTR
接口实例化一个对象,使用一个字符串,以便我可以将它传递给Initialize
方法。
我怎样才能做到这一点?
更新:
我修改了 .h 文件以使用wchar_t*
:
JNAerator 生成的方法如下:
所以我这样称呼它:
问题是我得到以下异常:
在这一行:
我究竟做错了什么?
java - 使用 Void* 参数将 Socket 数据传递给 JNA 函数
在 Windows 上,我有一些通过 Java 套接字进入的第 3 方 TCP 数据,我试图弄清楚如何将数据传递到由同一第 3 方提供的 C 库中 - 使用 JNA。我对 JNA/JNI/C 等所有东西都很陌生。
第 3 方库将从套接字获取传入字节并将它们解码为正确的消息类型。由于传入的数据是任意长度的,没有结束分隔符,并且起始分隔符很短(因此可能出现在数据中间而不是实际的分隔符),实际上可能更容易弄清楚如何使用它图书馆虽然 JNA 而不是自己滚动(或学习 C)。
我已经设法使用 jnaerator 从 C 头文件生成源代码。我还成功地调用了一个不需要参数的简单 C 函数。但是,当尝试使用需要将“原始数据”传递给最初接受 void 指针的 C 函数时,我不确定如何继续。
以下是代码中的相关片段。
我如何获得传入
将“原始数据”转换为 JNA 函数期望的指针?我还需要注意哪些其他问题?字节序、无符号字节问题等?
我知道这可能没什么可做的,但我很感激我能得到的任何帮助。
java - 从 Java 调用 dll(C++ 库)方法
我有带有用 C++ 编写的头文件的 .dll 库(没有可用的源代码)。这个库使用了一些其他的 .dll 文件——我也有。我的任务是从 Java 中使用这个库(调用方法并接收结果)。
我发现可以为此目的使用 JNAerator。会是什么算法?我尝试java -jar jnaerator.jar MyLib.dll MyLibHeader.h
了命令,但它输出
如何使用 -h 寻求帮助?我需要哪种模式?示例命令中只有一个 dll,但我想使用其中的三个,因为它们相互依赖。
可能它更适合我的任务吗?(一些教程将不胜感激)。谢谢。
java - 如何将字符串值转换为指针(Java,JNAerator)?
我已经使用 JNAerator 将 .dll 库转换为 JAR。现在我需要调用如下所示的 OpenTCPIPPort_V 方法:
public static short OpenTCPIPPort_V(Pointer<Byte > tcpPort, Pointer<Byte > IPAddr)
如何将两个字符串值传递给此方法?