【发布时间】:2014-08-26 12:42:15
【问题描述】:
我目前正在用 C 语言编写一个包含游戏手柄支持的跨平台库。 Windows 上的游戏手柄通信由原始输入和 xinput 处理,具体取决于特定的游戏手柄。
虽然 xinput 有助于 xbox360 控制器上的力反馈,但我还没有找到使用原始输入的方法。我有一些可以提供力反馈的游戏手柄,但我找不到通过原始输入来做到这一点的方法。有没有办法做到这一点?
我不喜欢使用 directinput api,因为它已被 Microsoft 弃用和劝阻。
编辑:
由于我已经在很大程度上实现了游戏手柄,也许我可以稍微缩小一下问题的范围。我怀疑可以通过读取 HIDP_CAPS 结构的 NumberOutputValueCaps 找到游戏手柄中的震动马达数量。这为我所有的测试游戏手柄提供了正确的结果。
我正在使用函数 HidP_GetUsageValue 来读取轴值,效果很好。现在我怀疑调用 HidP_SetUsageValue 应该允许我改变这个输出值,打开震动马达。但是,调用此函数会失败。这个函数应该能够访问震动马达吗?
【问题讨论】: