2010-07-26 64 views
4

我想從USB HID設備讀取,我知道如何在C#中使用DLLImport hid.dll來做到這一點,但我想從C++做到這一點,這種方式我不必聲明所有的結構等,只是包含頭文件。WDK(Windows驅動程序工具包)和VC++頭文件問題

#include <windows.h> 

extern "C" { 
    #include <hidsdi.h> 
} 

int main(){ 

} 

錯誤(6出的163):

所以,我包括在頭文件和鏈接庫,我得到了很多錯誤的下載WDK然後

Error 1 error C2065: 'PASSIVE_LEVEL' : undeclared identifier c:\winddk\7600.16385.1\inc\api\hidpi.h 302 driver 
Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\winddk\7600.16385.1\inc\api\hidpi.h 303 driver 
Error 3 error C2146: syntax error : missing ';' before identifier 'NTSTATUS' c:\winddk\7600.16385.1\inc\api\hidpi.h 303 driver 
Error 4 error C2143: syntax error : missing ';' before '__stdcall' c:\winddk\7600.16385.1\inc\api\hidpi.h 303 driver 
Error 5 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\winddk\7600.16385.1\inc\api\hidpi.h 303 driver 
Error 6 error C2377: 'NTSTATUS' : redefinition; typedef cannot be overloaded with any other symbol c:\winddk\7600.16385.1\inc\api\hidpi.h 303 driver 

好,所以我讀了一些地方,我也必須升級Windows SDK,我有微軟Windows SDK v6.0A,我下載並安裝了Windows SDK v7.0。但是看起來我現在有兩個SDK?我如何在Visual Studio中正確執行SDK升級?

我非常感謝您的幫助,

感謝, 卡洛斯

回答

8

我找到了解決辦法,不知道爲什麼這是工作,但它是!:

在Visual Studio中去到:

工具 - >選項 - >項目 - > VC++目錄,然後顯示包含文件的目錄。

添加此文件夾:

C:\ WINDDK \ 7600.16385.1 \ INC \ DDK和C:\ WINDDK \ 7600.16385.1 \ INC \ API

現在,這裏是解決問題的訣竅對我來說,我不知道爲什麼,因爲看起來很奇怪,但這裏是:

C:\ WinDDK \ 7600.16385.1 \ inc \ ddk - >該目錄必須是列表中的第一個目錄!

C:\ WINDDK \ 7600.16385.1 \ INC \ API - >這個目錄必須是上述的 「$(WindowsSdkDir)\包括」 但低於 「$(VCInstallDir)包括」

實施例:

C:\WinDDK\7600.16385.1\inc\ddk 
$(VCInstallDir)include 
$(VCInstallDir)atlmfc\include 
C:\WinDDK\7600.16385.1\inc\api 
$(WindowsSdkDir)\include 
$(FrameworkSDKDir)include 

卡洛斯

+2

的問題是,該WDK和SDK包含不同的頭文件,所以你必須強制WDK頭被首次列入,爲WDK頭包括。 – Christopher 2010-11-30 19:02:45

+0

你是否記得你曾經用過lib的東西?因爲它無法鏈接我從WDK撥打的功能。我從WDK添加了lib \ win7 \ i386 \但顯然不工作 – 2012-04-02 23:38:43

+0

感謝十億,解決了我的問題;) – Breeze 2014-01-14 16:17:38

相關問題