VS2008+QT+CYAPI开发USB程序问题
采用VS2008开发QT程序时需要用到CYAPI的库和头文件,但在添加Cyapi.h后编译器报如下错误:
d:\app\app\app\CyAPI.h(15) : error C2146: syntax error : missing ';' before identifier 'bLength'
1>d:\app\app\app\CyAPI.h(15) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\app\app\app\CyAPI.h(15) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\app\app\app\CyAPI.h(16) : error C2146: syntax error : missing ';' before identifier 'bDescriptorType'
1>d:\app\app\app\CyAPI.h(16) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\app\app\app\CyAPI.h(16) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\app\app\app\CyAPI.h(17) : error C2146: syntax error : missing ';' before identifier 'bcdUSB'
1>d:\app\app\app\CyAPI.h(17) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\app\app\app\CyAPI.h(17) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\app\app\app\CyAPI.h(18) : error C2146: syntax error : missing ';' before identifier 'bDeviceClass'
1>d:\app\app\app\CyAPI.h(18) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\app\app\app\CyAPI.h(18) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\app\app\app\CyAPI.h(19) : error C2146: syntax error : missing ';' before identifier 'bDeviceSubClass'
1>d:\app\app\app\CyAPI.h(19) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\app\app\app\CyAPI.h(19) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\app\app\app\CyAPI.h(20) : error C2146: syntax error : missing ';' before identifier 'bDeviceProtocol'
1>d:\app\app\app\CyAPI.h(20) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\app\app\app\CyAPI.h(20) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\app\app\app\CyAPI.h(21) : error C2146: syntax error : missing ';' before identifier 'bMaxPacketSize0'
1>d:\app\app\app\CyAPI.h(21) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\app\app\app\CyAPI.h(21) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\app\app\app\CyAPI.h(22) : error C2146: syntax error : missing ';' before identifier 'idVendor'
1>d:\app\app\app\CyAPI.h(22) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\app\app\app\CyAPI.h(22) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\app\app\app\CyAPI.h(23) : error C2146: syntax error : missing ';' before identifier 'idProduct'
1>d:\app\app\app\CyAPI.h(23) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\app\app\app\CyAPI.h(23) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\app\app\app\CyAPI.h(24) : error C2146: syntax error : missing ';' before identifier 'bcdDevice'
而在MFC程序中却没有这个问题,最终发现是由于缺少window头文件造成的
解决方法:
先添加window头文件再包含Cyapi头文件
#include <Windows.h>
#include "CyAPI.h"