2013-07-03 55 views
0

試圖使用原始輸入特定的功能和結構的代碼::塊IDE使用MinGW的WINAPI,我得到了很多編譯器錯誤的失蹤功能和結構:C++ - WINAPI - 缺少原始輸入特定的函數和結構?

> ||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) ===| 

爲什麼會出現這種情況,怎麼能這樣被修復?

回答

1

編譯器錯誤是由於缺少預處理器定義而發生的。基於這些普遍問題和答案發現here,這段代碼將修復它:

#ifdef __MINGW32__ 
# define _WIN32_WINNT 0x0501 
#endif // __MINGW32__ 
#include <windows.h> 
+0

我推薦使用[mingw-w64](http://mingw-w64.sourceforge.net/),而不必擔心這樣的東西。 –

0

這是因爲

「RAWINPUTDEVICELIST」不是在這個範圍內

等申報

docs#include <Windows.h>

+0

好吧,這可能是Microsoft Visual Studio和其他IDE的情況,但對於Code :: Blocks中的MinGW,這不會不幸地將其切斷。我相信MinGW標題並不像他們應該那樣準確。我不是這方面的專家,只是想幫助那些與我有同樣問題的人。 :) – Helixirr