我正在尝试从 USB HID 设备读取数据,我知道如何使用 DLLImport hid.dll 在 C# 中执行此操作,但我想从 C++ 执行此操作,这样我就不必声明所有结构等,并且只包含头文件。
所以我下载了WDK然后,当包含头文件并链接库时,我收到很多错误:
#include <windows.h>
extern "C" {
#include <hidsdi.h>
}
int main(){
}
错误(163 个中的 6 个):
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,我有 Microsoft Windows SDK v6.0A,我下载并安装了 windows SDK v7.0。但看起来我现在有两个SDK?如何在Visual Studio中正确进行SDK升级?
我非常感谢你的帮助,
谢谢,
卡洛斯
我找到了一个解决方案,不知道为什么它有效,但它确实有效!:
在 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)\include”上方但位于“$(VCInstallDir)include”下方
Example:
C:\WinDDK\7600.16385.1\inc\ddk
$(VCInstallDir)include
$(VCInstallDir)atlmfc\include
C:\WinDDK\7600.16385.1\inc\api
$(WindowsSdkDir)\include
$(FrameworkSDKDir)include
Carlos
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)