簡體   English   中英

RegisterRawInputDevices()正在生成ERROR_FILE_NOT_FOUND

[英]RegisterRawInputDevices() is generating ERROR_FILE_NOT_FOUND

當我的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結構的大小(以字節為單位)。

之所以不起作用,是因為您僅傳遞了一個sizeof RAWINPUTDEVICE結構。 應該是這樣

sizeof( Rid )

sizeof( Rid[0] )

希望這對其他人有幫助,因為我也遇到了麻煩!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM