2012-03-16 165 views
2

我一直在尝试从USB操纵杆读取数据(x/y轴,按下按钮等),并且我听说过DirectInput。一直在寻找一些很长时间才能找到一个体面的例子或漫游,但很少成功。如果任何人都可以分享一个简单的教程,或引导我到正确的地方,我会在你的债务。谢谢使用C++和DirectInput的USB操纵杆

编辑:努力实现在Windows平台这一目标

+0

是什么操作系统您使用的? – Panagiotis 2012-03-16 18:25:59

+0

对不起忘了提,我使用的是Windows 7中,并希望该计划将大部分的Windows发行版工作 – tdgtyugdyugdrugdr 2012-03-16 18:27:47

+0

[这](http://msdn.microsoft.com/en-us/library/windows/desktop/ee418631 (v = vs.85).aspx)看起来很符合你的需求。不完全是一个教程,但它是这个东西的官方网站。 – chris 2012-03-16 18:30:50

回答

3

DirectX SDK中有几个DirectInput示例,源代码和编译的二进制文件。包括Joystick样本。老版本的SDK(查找“DirectX 9.0 SDK”,2004 - 2005年左右)有更多样本,多达十几个!

操纵杆样品


描述操纵杆样本程序获得并显示操纵杆 数据。

路径来源:(SDK根)\样本\ C++ \ DirectInput的\操纵杆

可执行文件:(SDK根)\样本\ C++ \ DirectInput的\ BIN \ Joystick.exe

用户指南注意如何当您移动时显示的数据发生变化,并且摇动摇杆,旋转油门轮,然后按各种组合中的按钮 。

编程说明应用轮询立即 数据操纵杆响应对话过程中设置一个计时器。

+0

啊谢谢你,发现SDK的例子,教了很多 – tdgtyugdyugdrugdr 2012-03-16 23:31:36

0

我在github上使用了walbourn/directx-sdk-samples,它完美地工作。

我不得不配置.pro文件如下对Qt Creator的运行:

TEMPLATE = app 
CONFIG += c++14 
CONFIG -= app_bundle 
CONFIG -= qt 

SOURCES += main.cpp 
HEADERS += resource.h 
DISTFILES += directx.ico joystick.rc 
RC_FILE = joystick.rc 

DEFINES -= UNICODE 
#DEFINES += _MBCS 

win32: QMAKE_CXXFLAGS_RELEASE -= -Zc:strictStrings 
win32: QMAKE_CFLAGS_RELEASE -= -Zc:strictStrings 
win32: QMAKE_CXXFLAGS_DEBUG -= -Zc:strictStrings 
win32: QMAKE_CFLAGS_DEBUG -= -Zc:strictStrings 
win32: QMAKE_CFLAGS -= -Zc:strictStrings 
win32: QMAKE_CXXFLAGS -= -Zc:strictStrings 

LIBS += -L"C:/Program Files (x86)/Windows Kits/10/Lib/10.0.10240.0/um/x64" 
LIBS += -lshell32 -luser32 -ldxguid -lcomctl32 -lole32 -loleaut32 -ldinput8