C++ - WINAPI - Липсват специфични функции и структури за необработен вход?

Докато се опитвах да използвам специфични функции и структури за необработен вход в WINAPI, използвайки MinGW в Code::Blocks IDE, получих много грешки на компилатора за липсващи функции и структури:

> ||In function 'void find_devices_input()':| |16|error:
> 'RAWINPUTDEVICELIST' was not declared in this scope| |16|error:
> 'GetRawInputDeviceList' was not declared in this scope| |19|error:
> 'list_devices_input' was not declared in this scope| |19|error:
> expected type-specifier before 'RAWINPUTDEVICELIST'| |19|error:
> expected ';' before 'RAWINPUTDEVICELIST'| |25|error: type '<type
> error>' argument given to 'delete', expected pointer| ||=== Build
> finished: 6 errors, 0 warnings (0 minutes, 0 seconds) ===|

Защо се случва това и как може да се поправи?


person Helixirr    schedule 03.07.2013    source източник


Отговори (2)


Грешките на компилатора възникват поради липсваща дефиниция на препроцесора. Въз основа на тези общи въпроси и отговори, намерени тук, това част от кода ще го поправи:

#ifdef __MINGW32__
#   define _WIN32_WINNT 0x0501
#endif // __MINGW32__
#include <windows.h>
person Helixirr    schedule 03.07.2013
comment
Препоръчвам вместо това да използвате mingw-w64 и няма да се налага да се тревожите за неща като тези. - person Jesse Good; 04.07.2013

Това се случва, защото

„RAWINPUTDEVICELIST“ не е деклариран в този обхват

и т.н.

В документите се казва до #include <Windows.h>

person doctorlove    schedule 03.07.2013
comment
Е, това може да е така за Microsoft Visual Studio и други IDE, но за MinGW в Code::Blocks, това за съжаление няма да го отреже. Вярвам, че заглавките на MinGW не са толкова точни, колкото би трябвало да бъдат. Не съм експерт по тази тема, просто исках да помогна на тези, които имат подобни проблеми като мен. :) - person Helixirr; 03.07.2013