第一个问题,编译圈圈书中所带例程,MyUsbHidTestApp,报一个编译错误:<br />myusbhidtestappdlg.cpp(168) : error C2440: 'static_cast' : cannot convert from 'BOOL (__thiscall CMyUsbHidTestAppDlg::* )(UINT,DWORD)' to 'LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)'<br />None of the functions with this name in scope match the target type<br /><br />定位在>>指向的这句话上:<br />BEGIN_MESSAGE_MAP(CMyUsbHidTestAppDlg, CDialog)<br /> //{{AFX_MSG_MAP(CMyUsbHidTestAppDlg)<br /> ......<br /> ON_WM_TIMER()<br />>> ON_MESSAGE(WM_DEVICECHANGE, OnDeviceChange)<br /> //}}AFX_MSG_MAP<br />END_MESSAGE_MAP()<br /><br />编译环境是VC2005中文版,但我想应该跟VC6兼容吧。VC这块我实在是懂的太少,所以出了这个问题我不太知道该怎么解决……<br /><br /><br />另外一个问题,最近一直在想,如果一个USB HID设备有两个功能,用多个管道(端点),实现时PC程序应当怎么处理?因为看圈圈这个例子,没有说明PC取数据是从哪个端点取的,那么我怎么分辨(如果有)多个端点传来的数据呢?<br /><br />比方说吧,打算做这么个设备,每秒会采集少量的数据,打算用端点1IN上传到PC,同时这个设备又有个shell控制台,需要在shell上做一些配置管理的工作,打算用端点2 IN 和 OUT管道通信。两个端点数据量都不大,考虑都用中断传输;为驱动简单采用HID设备。那么我应当怎么设计报告?怎么设计报告描述符?PC程序怎么区分不同端点上来的数据? |
|