Java中如何获取新的Pointer?

2023-11-26

如何从 JNA 调用 C 中具有此方法签名的方法?

int open_device(context *ctx, device **dev, int index);

C 方法的最后两行如下所示:

*dev = pdev;
return 0;

这是唯一的用途dev在那个方法中。这意味着我必须将一个指向空指针的指针传递给该方法,对吧?然后该方法用a的地址填充空指针device对象,我可以将指向设备的指针传递给其他方法。

我的问题是:这是正确的方法吗?如果是,我如何从 Java 分配一个新的指针?


根据已接受的答案,我这样做了:

Memory p = new Memory(Pointer.SIZE);
Memory p2 = new Memory(Pointer.SIZE);
p.setPointer(0, p2);
nativeLib.open_device(ctx, p, index);
return p2;

看来 JNAPointer班级有setPointer and getPointer允许多重间接的方法,以及Memory类来实际“分配”本机对象。所以你应该能够做类似的事情:(我只是从 JNA 文档中猜测,我还没有测试过这个)

Pointer pDev = new Memory(Pointer.SIZE); // allocate space to hold a pointer value
// pass pDev to open_device
Pointer dev = pDev.getPointer(0);        // retrieve pointer stored at pDev
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中如何获取新的Pointer? 的相关文章

  • 将成员函数作为参数传递/c++

    我想用 C 实现一个类b可以通过封装该迭代器类型的成员集进行某种迭代 喜欢 b object for each x do function f so 函数 f会得到每个人的x成员并做任何事情 比方说 void function f x me
  • 使用反射获取基类的受保护属性值

    I would like to know if it is possible to access the value of the ConfigurationId property which is located in the base
  • 特定设备的不同字体大小

    我目前正在开发通用应用程序 我需要分别处理移动设备和桌面的文本框字体大小 我找到了一些方法 但都不能解决问题 使用 VisualStateManager 和 StateTrigger 为例
  • 导出到 CSV 时 Gridview 出现空行

    这个问题是由进一步讨论引发的这个问题 https stackoverflow com questions 6674555 export gridview data into csv file 6674589 noredirect 1 com
  • 使用scanf()时如何区分整数和字符

    我只是使用该功能scanf 代码如下 scanf d a printf d a 当我输入1时 它会像我想要的那样打印1 但即使我输入 1a 它也会像以前一样打印 1 当用户输入非整数时 例如 2 3 12ab 1 a 我想向用户显示 输入整
  • QThread - 使用槽 quit() 退出线程

    我想在线程完成运行时通知对象 但是 我无法让线程正确退出 我有以下代码 处理器 cpp thread new QThread tw new ThreadWorker connect tw SIGNAL updateStatus QStrin
  • c# 如何生成锦标赛括号 HTML 表

    所以我已经被这个问题困扰了三个星期 但我一生都无法弄清楚 我想做的是使用表格获得这种输出 演示 http www esl world net masters season6 hanover sc2 playoffs rankings htt
  • C# 中处理 SQL 死锁的模式?

    我正在用 C 编写一个访问 SQL Server 2005 数据库的应用程序 该应用程序是数据库密集型的 即使我尝试优化所有访问 设置适当的索引等 我预计迟早会遇到死锁 我知道为什么会发生数据库死锁 但我怀疑我能否在某个时候发布不发生死锁的
  • 如何不在类中实现接口的功能?

    面试时面试官问了我以下问题 但我不知道这个问题的答案是什么 请帮忙 如果我不想 我必须做什么 在我的类中实现一个函数 在接口中声明为 由我班实施 Edited 我正在使用 NET 和 C 如果有人可以提供 C 示例代码示例 那就太好了 Th
  • 读/写带有特殊字符的.txt文件

    I open Notepad Windows 并写 Some lines with special characters Special 并前往另存为 someFile txt 与Encoding set to UTF 8 在Java中我有
  • Google Cloud Messaging - 立即收到或长时间延迟收到的消息

    我在大学最后一年的项目中使用谷歌云消息传递 一切正常 但我在使用 GCM 时遇到了一些麻烦 通常 消息要么几乎立即传递 要么有很大的延迟 我读过这篇文章 但我真的认为它不适用于这种情况 GCM 通常会在消息发送后立即传送消息 然而 这并不总
  • 在 .NET 中记录 StackOverflowException

    最近 我的 NET 应用程序 asp net 网站 中出现了堆栈溢出异常 我之所以知道该异常是因为它出现在我的 EventLog 中 我知道 StackOverflow 异常无法被捕获或处理 但是有没有办法在它杀死您的应用程序之前记录它 我
  • 展开路径中具有环境变量的文件名

    最好的扩张方式是什么 MyPath filename txt to home user filename txt or MyPath filename txt to c Documents and settings user filenam
  • 为什么C语言中可以使用多个分号?

    在 C 中我可以执行以下操作 int main printf HELLO WORLD 它有效 这是为什么 我个人的想法 分号是一个 NO OPERATION 来自维基百科 指示符 拥有一大串分号与拥有一个分号并告诉 C 语句已结束具有相同的
  • 在 SQL Server 上执行分页的最佳方式是什么?

    我有一个数据库超过200万记录 我需要执行分页以在我的 Web 应用程序上显示 该应用程序每页必须有 10 条记录DataGrid 我已经尝试使用ROW NUMBER 但是这种方式会选择所有 200 万条记录 然后只得到 10 条记录 我也
  • Integer.parseInt 引发的 NumberFormatException

    嘿 我在学校上编码课 但老师没有很好地解释 所以我们必须在网上查找我所做的信息 但我无法找到代码中的错误 你能帮我吗 char end s do System out println Tipo de boleto char boleto c
  • 为什么 C# 接口名称前面加上“I”

    这种命名约定背后的基本原理是什么 我没有看到任何好处 额外的前缀只会污染 API 我的想法与康拉德一致response https stackoverflow com a 222502 9898与此相关的question https sta
  • 如何使用 ASP.NET Web 表单从代码隐藏中访问更新面板内的文本框、标签

    我在更新面板中定义了一些控件 它们绑定到中继器控件 我需要根据匿名字段隐藏和显示用户名和国家 地区 但问题是我无法以编程方式访问更新面板中定义的控件 我如何访问这些控件 我也在网上查找但找不到很多参考资料 下面是来自aspx页面和 cs页面
  • 创建带有部分的选项卡式侧边栏 WPF

    我正在尝试创建一个带有部分的选项卡式侧边栏 如 WPF 中的以下内容 我考虑过几种方法 但是有没有更简单 更优雅的方法呢 方法一 列表框 Using a ListBox并将 SelectedItem 绑定到右侧内容控件所绑定的值 为了区分标
  • 将文本从文本文件添加到 PDF 文件[重复]

    这个问题在这里已经有答案了 这是我的代码 using FileStream msReport new FileStream pdfPath FileMode Create step 1 using Document pdfDoc new D

随机推荐

  • 使用 C# SQL 插入查询

    我目前遇到一个问题 正在尝试解决 我只是尝试在 C 的帮助下访问数据库并插入一些值 我尝试过的事情 有效 String query INSERT INTO dbo SMS PW id username password email VALU
  • 使用与列同名的变量对 data.table 进行子集化

    我想对 a 进行子集化data table使用与列同名的变量会导致一些问题 dt lt data table a sample c a b c 20 replace TRUE b sample c a b c 20 replace TRUE
  • 如何在jquery中的特定字符之后分割字符串[重复]

    这个问题在这里已经有答案了 这是我的代码 var string1 Hello how are you 我想要一个在 之后的字符串 即整个字符串中的 you 假设该字符串始终有一个 字符 并且我希望该字符之后的所有字符串都位于 jquery
  • 有没有办法将系统日志消息重定向到标准输出?

    我有一个可以以两种模式运行的应用程序 使用 CLI 或作为守护程序 我在用syslog 用于记录 但是 当在 CLI 模式下运行时 我想要所有日志记录 除了那些标记的日志记录LOG DEBUG 消息发送到控制台而不是记录 我尝试过使用set
  • 异步生成器和 Observables 之间有什么区别?

    异步生成器 一个示例案例是可读流 可观测值 处理异步数据流的基本协议 这两种方法似乎都是解决异步数据流同一问题的不同方法 除了品味问题之外 两者之间还有实际区别吗 从建议的API描述来看 observables 可以有多个订阅者 广播 异步
  • tf.audio.decode_wav 如何获取其内容?

    我正在尝试使用以下命令将一些音频文件拉入 Tensorflowtf audio decode wav 我可以看到有人正在考虑在文档中提供更多信息 但是有人有任何关于这应该如何工作的示例吗 tf audio decode wav conten
  • 从深度缓冲区获取真实的 z 值

    正如预期的那样 从着色器中的深度缓冲区采样会返回 0 到 1 之间的值 给定相机的近剪裁平面和远剪裁平面 如何计算此时的真实 z 值 即距相机的距离 From http web archive org web 20130416194336
  • 将类保存到二进制文件中 - Python

    我知道可以使用以下方法将类保存到 C 中的二进制文件中 file write Class variable size of class amount of saves file where to save 或类似的东西 我想在 python
  • MailApp.sendEmail 错误消息 - “无权调用 sendEmail”[重复]

    这个问题在这里已经有答案了 当我更改电子表格中的某些内容时 onEdit 触发器运行 我可以看到我放入代码中的所有消息框 我的函数停在这一行 MailApp sendEmail emailAddress subject message 我从
  • 是否可以仅使用区域监控 + GSM 并获得不超过 5 公里的水平精度?

    我想分享我执行的测试场景的信息 并请您分享您在区域监控方面的经验 因此 我注册了两个相对的区域 A 和 B 半径为 5 公里 所需精度为 1 公里 它们之间的距离为 20 公里 但是 从 A 到 B 时 我没有收到任何 didEnterRe
  • 如何从 Android 中的 TTF 文件读取字距调整对表

    我目前正在使用从 TTF 文件加载的外部 非标准 字体在 Canvas 上绘制文本 我想为我正在显示的文本启用字距调整 我想知道是否有可能使用 Android API 从字体中读取字距对 我想知道是否有可能使用 Android API 从字
  • 电子邮件通讯服务指南

    我正在实施一个电子邮件通讯发送服务使用 NET 和 Windows Server 技术 是否有全面的指南可以提供帮助避免电子邮件被垃圾邮件过滤器捕获以及其他机制 它们应该涵盖 合法 批量邮件发送的所有方面 SMTP 配置 DNS HTML
  • 在分支签出之间保留 git --assume-unchanged 文件

    我一直在使用git assume unchanged yacs settings development py忽略我的开发分支中的本地数据库配置文件 但是当我想切换分支 用于部署 时 我收到一条错误 指出我仍有待更改的更改 git chec
  • UIImagePickerController 裁剪?

    我读过它是自动的 但在我的情况下似乎没有发生 使用 UIImagePickerController 并将 allowedEditing 设置为 YES 我得到了带有裁剪方形叠加层的编辑视图 但是当我完成图像时 它没有按照我的预期裁剪 这个阶
  • Cols、col groups 和 css ":hover" 伪类

    我正在尝试创建一个表格来显示个人的体重指数 作为其中的一部分 我想 hover 为了 tr and tr
  • 使用 Ruby 和 Nokogiri 解析大型 XML 文件

    我有一个大型 XML 文件 大约 10K 行 需要定期解析 格式如下
  • 我可以使用 std::async 而不等待未来的限制吗?

    高水平我想在异步模式下调用一些没有返回值的函数 而不等待它们完成 如果我使用 std async 则未来对象在任务结束之前不会破坏 这使得调用在我的情况下不同步 Example void sendMail const std string
  • Pandas:将数据帧转换为列表字典

    我有一个像这样的数据框 col1 col2 A 0 A 1 B 2 C 3 我想得到这个 A 0 1 B 2 C 3 I tried df set index col1 col2 to dict 但这并不完全正确 我遇到的第一个问题是 A
  • 在 Ember.js 中所有视图完全渲染后执行一次代码

    类似于文档准备就绪 但毕竟 Ember 视图渲染 我现在正在通过覆盖 ApplicationView didInsertElement 来执行此操作 到目前为止似乎有效 App ApplicationView Em View extend
  • Java中如何获取新的Pointer?

    如何从 JNA 调用 C 中具有此方法签名的方法 int open device context ctx device dev int index C 方法的最后两行如下所示 dev pdev return 0 这是唯一的用途dev在那个方