Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > обнаружение usb устройств


Автор: _pussbb 7.12.2008, 22:52
Доброй ночи.
у меня проблема с    PDEV_BROADCAST_DEVICEINTERFACE pDevInf (атрибут dbcc_name)
он должен быть примерно такого типа "\\?\USB#Vid_04e8&Pid_503b#0002F9A9828E0F06#{a5dcbf10-6530-11d2-901f-00c04fb951ed}" , а мне билдер выдает только "\\".
В присоединённом файле есть мой проект (мусора много сам знаю) и проект на Microsoft Visual Studio 
с которого я и брал все необходимые  функции.
Заранее благодарен. 

Автор: _pussbb 8.12.2008, 19:51
Код

    for (int i = 0; i < pDevInf->dbcc_size; i++) {
        ShowMessage(pDevInf->dbcc_name[i])// Вот здесь выдает раз пустой символ,а следующий символ имени устройства.
    szDevId=szDevId+pDevInf->dbcc_name[i] ;
    }

Вопрос это Widechar надо  парсить скажем через wchar_t*. 
или что это

Автор: _pussbb 8.12.2008, 23:17
все разобрался. код может и не правильный но зато работает
Код

    AnsiString szDevId;
    for (int i = 0; i < pDevInf->dbcc_size; i+=2) {
    szDevId=szDevId+pDevInf->dbcc_name[i] ;
    }
// " \\?\USB#Vid_04e8&Pid_503b#0002F9A9828E0F06#{a5dcbf10-6530-11d2-901f-00c04fb951ed}"
 szDevId.Delete(szDevId.AnsiPos("}")+1,szDevId.Length()-szDevId.AnsiPos("}")+1);
  szDevId.Delete(1,4);
//"USB\Vid_04e8&Pid_503b\0002F9A9828E0F06"

    

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)