cecily
驱动牛犊
驱动牛犊
  • 注册日期2004-08-04
  • 最后登录2013-05-16
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望86点
  • 贡献值1点
  • 好评度14点
  • 原创分0分
  • 专家分0分
阅读:1275回复:1

在VC下想得到U盘VID和PID遇到的问题,请知道的来帮忙,谢谢

楼主#
更多 发布于:2004-09-29 17:42
我想在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);
我不是你的天使,我不懂你的天堂
cockliujun
驱动牛犊
驱动牛犊
  • 注册日期2003-08-21
  • 最后登录2008-06-25
  • 粉丝0
  • 关注0
  • 积分860分
  • 威望16点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-12-03 16:29
应该是strcpy(deviceName, "\\\\.\\");

\ 是转义符号哦。
游客

返回顶部