java - JNA 中的 Oleacc dll 支持
问题描述
我正在尝试使用 JNA 库为AccessibleObjectFromWindow
我正在处理的 Java 项目调用 Oleacc dll 的方法。
我浏览了 JNA 文档并在线搜索了一个示例,但找不到AccessibleObjectFromWindow
在 JNA 中使用 Oleacc dll 的良好参考。
有人可以在 JNA 库方面有良好的背景,请确认 JNA 是否包含 Oleacc dll 的功能?
如果没有任何从 Java 程序中使用 Oleacc dll 的替代方法,我们也非常感谢。
谢谢..!
解决方案
当您问“JNA 包括”这个问题时,指出 JNA 项目有两个部分会很有帮助。有jna
包含核心功能的jna-platform
工件,以及包含用户提交的用于各种平台的 JNA 映射的工件。我强调“用户提交”,因为 JNA 是一个社区维护的项目,而“JNA 在其平台库映射中缺少函数 XXX”的常见问题解答是“不,不是,它只是在等你添加它 :)” .
Oleacc dll 就是这些实例之一。它还没有在jna-platform
工件中,但如果用户提交了它可能会出现。例如,请参阅2015 年的一位用户自己映射了这个库,但没有将其贡献给社区,所以 5 年后你在这里重现了这一努力!如果您在该 JNA 问题中向下滚动,您会看到一些实现您的方法的示例代码和其他一些代码,如果您能为 JNA 做出贡献,那就太好了!
同时,当映射不在 JNA 中时,上面的 FAQ 链接提供了如何实现它的模板。在您的特定情况下,AccessibleObjectFromWindow
您可以在自己的项目中轻松实现代码。使用以下内容创建一个 Oleacc 类:
public interface Oleacc extends StdCallLibrary, WinUser, WinNT {
Oleacc INSTANCE = (Oleacc) Native.loadLibrary("oleacc", Oleacc.class, W32APIOptions.DEFAULT_OPTIONS);
HRESULT AccessibleObjectFromWindow(HWND win, int objID, Guid.REFIID iid, PointerByReference ptr);
}
你完成了!那么 JNA 中的映射还存在吗?不,但希望在您实现它并测试您的代码之后,您可以将您的映射贡献给项目,以便下一个需要这样做的人可以在 JNA 中找到它!
推荐阅读
- javascript - 在循环中处理 axios 取消
- javascript - TypeError:无法读取未定义的属性“地图”
- c++ - 为什么 unordered_set 不允许向量作为键?
- python - 如何在tensorflow中实现条件分支?
- .htaccess - 使用 .htaccess 重写带有查询字符串的 HTML 页面的 URL
- sql - oracle查询对所有空值重复数据集中的最后一个已知值
- angular - Angular 谷歌地图从 JSON 加载标记数据
- android - callback.onResult() 没有将值返回给 PageKeyedDataSource 中的适配器
() 在安卓中 - dart - Dart 中类构造函数语法的区别
- jquery - jQuery过滤器:找不到任何内容时无法显示消息