微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

什么是第三个参数意味着看起来/像 XInputGetBatteryInformation()

如何解决什么是第三个参数意味着看起来/像 XInputGetBatteryInformation()

对不起,如果我把这篇文章搞砸了,我第一次在 Stackoverflow 上发帖,我通常会向 discord 服务器寻求帮助,但他们不做 C++,我对 C++ 很陌生,我正在尝试开发一个 Bakkesmod 插件,它使用 XInput,这个想法是当控制器电池电量改变时它会更新你,虽然我不确定我将如何获取它的电池信息,它提到发送一个指针,但这有点对我来说很棘手,如果有人解释,我很乐意。 API Reference

解决方法

您需要创建一个 XINPUT_BATTERY_INFORMATION 类型的变量并传递一个指向它的指针。

XINPUT_BATTERY_INFORMATION my_battery;
XInputGetBatteryInformation(user_index,dev_type,&my_battery);
// Now my_battery contains the battery information

如果你或我用高级语言编写这个函数,我们可能会写更多类似的东西

XINPUT_BATTERY_INFORMATION XInputGetBatteryInformation(DWORD,BYTE);

即我们将返回结构。但是,您在此处看到的是旧 C 代码中的常见习语,例如 WinAPI(是的,WinAPI 是一个 C 库,您碰巧从 C++ 代码中调用了该库)。在较旧的 C 代码中,想要返回大于单词的结构的函数通常会采用该类型的输出参数。

DWORD XInputGetBatteryInformation(DWORD,BYTE,XINPUT_BATTERY_INFORMATION*);

DWORD 返回值是一个错误代码)

这有几个原因。这些函数被设计用于低级环境,因此通过为调用者提供控制结果哪里的能力,我们让他们更好地控制他们的内存管理,而不是强迫他们可能会多次复制一个值以将其放在需要的位置。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。