切换操纵杆USB端口时,使用joyGetPosEx失败

时间:2011-06-24 23:09:22

标签: c++ joystick reconnect

我正在使用“joyGetPosEx”功能来检测操纵杆输入:

JOYINFOEX joyInfoEx;
ZeroMemory(&joyInfoEx, sizeof(joyInfoEx));
joyInfoEx.dwSize = sizeof(joyInfoEx);
// poll for values
joyGetPosEx(JOYSTICKID1, &joyInfoEx);

连接操纵杆时,每件事情都正常,函数返回“JOYERR_NOERROR”。

但是,如果在程序运行期间,我断开操纵杆并将其连接到不同的USB端口, “joyGetPosEx(JOYSTICKID1,& joyInfoEx);”不断返回“JOYERR_UNPLUGGED”值。

如果我将设备重新连接到初始USB端口,它会再次启动。

是否有人知道如果操纵杆连接到新端口如何使操纵杆工作?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我说你有一个没有序列号的USB设备,所以Windows会根据插件的位置识别它。它是否会以任何机会开始充当JOYSTICKID2


我们最终发现joyConfigChanged函数能够重新连接操纵杆。 [MSDN说#include <dinput.h>是使用此功能所必需的,因为事实证明,包含的顺序非常重要:首先是mmsystem.h,然后是dinput.h