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は、接続されている場所でUSBデバイスを識別します。万が一、動作を開始しますJOYSTICKID2か?


joyConfigChanged最終的に、この関数がジョイスティックを再接続できることを発見しました。[MSDNによると、#include <dinput.h>この関数を使用するには、インクルードの順序が重要です。mmsystem.h最初に、次にdinput.h

于 2011-06-25T01:36:06.370 に答える