|
|
我想将游戏手柄装上用MSDN提供的那个游戏杆力反馈例程进行编程,可是运行程序却根本不能枚举EnumDevice获得游戏手柄,系统找到了设备(北通的手柄),装了驱动,在DirectX诊断DirectIput里面也找到了设备,还可以对其进行设置,怎么那个例程运行弹出“找不到任何设备”,就是找不到设备呢?部分代码如下
哪位大哥用过的能否提供一个获取游戏手柄的例程源码给我?或者帮我看看问题出在哪里万分感 激!在线等!
我的邮箱:i_fuleyou@126.com
BOOL CALLBACK
EnumFFJoysticksCallback(LPCDIDEVICEINSTANCE pinst, LPVOID lpvContext)
{
HRESULT hr;
LPDIRECTINPUTDEVICE pdev;
LPDIRECTINPUTDEVICE2 pdev2;
hr = g_pdi->CreateDevice(pinst->guidInstance, &pdev, NULL);
if (FAILED(hr)) {
return DIENUM_CONTINUE;
}
hr = pdev->QueryInterface(IID_IDirectInputDevice2,
(LPVOID *)&pdev2);
pdev->Release();
if (FAILED(hr)) {
return DIENUM_CONTINUE;
}
g_pJoystick = pdev2;
return DIENUM_STOP;
}
BOOL
DIInit(HWND hwnd)
{
HRESULT hr;
hr = DirectInput8Create(g_hinst, DIRECTINPUT_VERSION,IID_IDirectInput8, (void**)&g_pdi, NULL);
if (FAILED(hr)) {
Complain(hwnd, hr, "DirectInputCreate");
return FALSE;
}
hr = g_pdi->EnumDevices(DI8DEVTYPE_JOYSTICK,
EnumFFJoysticksCallback,
NULL,
DIEDFL_ATTACHEDONLY | DIEDFL_FORCEFEEDBACK);
if (g_pJoystick == NULL) {
Complain(hwnd, hr, "Couldn't find any force feedback joysticks");
return FALSE;
}
|
|