c++ - RegisterRawInputDevices() 正在生成 ERROR_FILE_NOT_FOUND

标签 c++ windows raw-input

当我的 Windows 应用程序(游戏)启动时,我注册它以接收原始输入消息:

RAWINPUTDEVICE Rid[2];
Rid[0].usUsagePage  = HID_USAGE_PAGE_GENERIC;     // 0x01
Rid[0].usUsage      = HID_USAGE_GENERIC_MOUSE;    // 0x02
Rid[0].dwFlags      = RIDEV_INPUTSINK;   
Rid[0].hwndTarget   = sMainWindow;                // HWND from created window

Rid[1].usUsagePage  = HID_USAGE_PAGE_GENERIC;     // 0x01
Rid[1].usUsage      = HID_USAGE_GENERIC_KEYBOARD; // 0x06
Rid[1].dwFlags      = RIDEV_INPUTSINK;   
Rid[1].hwndTarget   = sMainWindow;

BOOL result = RegisterRawInputDevices( Rid, 2, sizeof( Rid[0] ) );

if( !result )
{
    EGSystemError( "RegisterRawInputDevices Error: ", GetLastError() );
}

这款游戏已经发布,许多用户似乎都没有问题,但我有一位用户收到错误消息:

"RegisterRawInputDevices Error: The system cannot find the file specified"

所以,问题是 - 为什么 RegisterRawInputDevices() 会生成 ERROR_FILE_NOT_FOUND 错误?我没有在文档中看到任何有帮助的引用资料。有没有人有这方面的经验?

最佳答案

以上评论不正确或规范不正确

MSDN 正在报告 https://msdn.microsoft.com/it-it/library/windows/desktop/ms645600(v=vs.85).aspx

cbSize [输入] 类型:UINT RAWINPUTDEVICE 结构的大小(以字节为单位)。

关于c++ - RegisterRawInputDevices() 正在生成 ERROR_FILE_NOT_FOUND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28754964/

相关文章:

c++ - 替换失败

c++ - 保留临时 std::string 并返回 c_str() 以防止内存泄漏

c++ - 多态成员变量

数组的 C++ vector

windows - 将 Jetty 7 作为 Windows 服务运行

c++ - 特定窗口c++的屏幕截图

windows - 使用批处理文件远程添加打印机; 0x32 不支持该操作

python - 键入文本而不显示文本

C# <--> VB.NET DLL 转换

c++ - (Windows HID API)HidD_GetPreparsedData() 由于句柄不正确而在 WM_INPUT 消息处理程序中失败?