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