写USB HID驱动遇到的问题需要hid.lib和setupapi.lib这两个lib我的代码如下:extern C {#include setupap
写USB HID驱动遇到的问题
需要hid.lib和setupapi.lib这两个lib
我的代码如下:
extern "C" {
#include "setupapi.h"
#include "hidsdi.h"
};
#pragma comment(lib, "hid.lib")
#pragma comment(lib, "setupapi.lib")
class UsbHidPort
{
public:
UsbHidPort(void);
~UsbHidPort(void);
};
编译会报
1>c:\program files\microsoft sdks\windows\v6.0a\include\setupapi.h(60) : error C2143: 语法错误 : 缺少“;”(在“*”的前面)
1>c:\program files\microsoft sdks\windows\v6.0a\include\setupapi.h(60) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v6.0a\include\setupapi.h(60) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v6.0a\include\spapidef.h(23) : error C2146: 语法错误 : 缺少“;”(在标识符“SP_LOG_TOKEN”的前面)
1>c:\program files\microsoft sdks\windows\v6.0a\include\spapidef.h(23) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v6.0a\include\spapidef.h(23) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v6.0a\include\commctrl.h(19) : error C2059: 语法错误 : “return”
1>c:\program files\microsoft sdks\windows\v6.0a\include\prsht.h(97) : error C2065: “CALLBACK”: 未声明的标识符
1>c:\program files\microsoft sdks\windows\v6.0a\include\prsht.h(97) : error C2065: “LPFNPSPCALLBACKA”: 未声明的标识符
1>c:\program files\microsoft sdks\windows\v6.0a\include\prsht.h(97) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v6.0a\include\prsht.h(97) : fatal error C1903: 无法从以前的错误中恢复;正在停止编译
错误
在网上查找处理方法
改成
#include <windows.h>
#include <setupapi.h>
#include <stdio.h>
extern "C"{
#include "hidsdi.h"
};
#pragma comment(lib, "hid.lib")
#pragma comment(lib, "setupapi.lib")
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
就OK了
请问一下这是为什么?
还有 写HID通信程序 需要安装DDK吗?很久之前写过 现在完全忘了 郁闷
[解决办法]setupapi.h 是系统文件,用#include<setupapi.h>来包含较规范;
setupapi.h 里用了一些类型定义,在windows.h 进行定义的,因此需要把windows.h包含进去。
DDK装不装的问题,你先装上,调通后,再卸载了,如果不通了,就必须装了