【问题标题】:Finding out whether a DirectInput device supports XInput (with mingw/gcc)查明 DirectInput 设备是否支持 XInput(使用 mingw/gcc)
【发布时间】:2010-12-29 12:34:16
【问题描述】:

我正在开发一个输入系统,包括 DirectInput 和 XInput。目前 XInput 设备被枚举了两次,一次是 XInput,一次是 DirectInput(因为它们都支持)。

如何确定给定的 DirectInput 设备是否也支持 XInput?该主题有 this MSDN page,但它需要 wbemidl.h 和 wmsstd.h,它们在 mingw/gcc 中不可用(出于某种原因,我想避免使用 msvc - 可能是习惯)。

我不认为将设备名称/guid 列入黑名单是一个好的解决方案,但有更好的解决方案吗?

谢谢。

【问题讨论】:

    标签: c++ windows directinput xinput


    【解决方案1】:

    wbemidl.h 和所有相关的头文件都可以从mingw-w64 项目中获得,不要介意64它也支持 32 位。

    Here 是实现IsXInputDevice 的示例,但不包括wmsstd.h

    【讨论】:

    • 相应地更新了我的答案。
    • 谢谢,现在剩下的唯一问题似乎是 gcc 中缺少 __uuidof()。
    • 我猜这在 MinGW 中没有实现。
    • 好吧,我猜 uuid 应该是唯一的,所以我已经使用带有 msvc 的 __uuidof() 读取了它,并对 gcc 的读取值进行了硬编码。似乎工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    • 2014-02-04
    • 2013-03-23
    • 1970-01-01
    相关资源
    最近更新 更多