采用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"