我正在使用“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端口,它会再次启动。
是否有人知道如果操纵杆连接到新端口如何使操纵杆工作?
提前致谢!
答案 0 :(得分:0)
我说你有一个没有序列号的USB设备,所以Windows会根据插件的位置识别它。它是否会以任何机会开始充当JOYSTICKID2
?
我们最终发现joyConfigChanged
函数能够重新连接操纵杆。 [MSDN说#include <dinput.h>
是使用此功能所必需的,因为事实证明,包含的顺序非常重要:首先是mmsystem.h
,然后是dinput.h
。