阅读:1275回复:1
在VC下想得到U盘VID和PID遇到的问题,请知道的来帮忙,谢谢
我想在VC中得到当前插入的U盘的VID和PID,看了一些相关的帖子,大家基本都推荐看usbview这个例子,我去看了一些,不过因为几乎没用过标准C做过开发,所以里面一些类型都没用过,查了些资料后还是有点迷糊,改了下部分代码,但是每次执行到strcpy的时候都会出现内存错误,代码如下,请看一下(这是出错的部分,还没改完,一些东西还没写好):
void CIDDlg::OnOK() { char HCName[16]; int HCNum; HANDLE hHCDev; HTREEITEM hHCItem; PCHAR rootHubName; ULONG nBytes; PUSB_NODE_CONNECTION_INFORMATION pNodeConInfo; BOOL success; ULONG nPort; USBDEVICEINFO info; for (HCNum = 0; HCNum < NUM_HCS_TO_CHECK; HCNum++) { wsprintf(HCName, "\\\\.\\HCD%d", HCNum); hHCDev = CreateFile(HCName, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); if (hHCDev != INVALID_HANDLE_VALUE) { rootHubName = GetRootHubName(hHCDev); if (rootHubName != NULL) { HANDLE hHubDevice; hHubDevice = INVALID_HANDLE_VALUE; info.HubName = rootHubName; info.ConnectionInfo = NULL; info.ConfigDesc = NULL; info.StringDescs = NULL; PCHAR deviceName; strcpy(deviceName, "\\\\.\\");//执行到这里出错 strcpy(deviceName + sizeof("\\\\.\\") - 1, info.HubName); hHubDevice = CreateFile(deviceName, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); |
|
|
沙发#
发布于:2004-12-03 16:29
应该是strcpy(deviceName, "\\\\.\\");
\ 是转义符号哦。 |
|