2

我正在使用“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 端口,它会重新开始工作。

有没有人知道如何使操纵杆即使连接到新端口也能正常工作?

提前致谢!

4

1 回答 1

0

我会说你有一个没有序列号的 USB 设备,所以 Windows 通过它的插入位置来识别它。它是否有JOYSTICKID2机会开始行动?


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

于 2011-06-25T01:36:06.370 回答