2015-11-19 3 views
0

Я работаю с кодом, где GUID определяется так:Как присвоить значение GUID переменной?

DEFINE_GUID(GUID_DEVINTERFACE_USB_DISK, 
      0x53f56307L, 0xb6bf, 0x11d0, 0x94, 0xf2, 
      0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); 

Я хочу, чтобы изменить значение и использовать другой класс GUID из here, где она определяется как {A5DCBF10-6530-11D2-901F-00C04FB951ED}

Как Я установил это значение или создаю новую переменную GUID, которая установлена ​​на это значение?

на основе другого ответа here я попробовал, но это не работает

GUID USB_GUID = GUID {"{A5DCBF10-6530-11D2-901F-00C04FB951ED}"} 

Примечание, это GUID используется в Windows API позже в моем коде:

if (! SetupDiEnumDeviceInterfaces(hDevInfo, 
            NULL, 
            &GUID_DEVINTERFACE_USB_DISK, 
            dwIndex, &spdid)) 
break; 

ответ

1

Проверить этот QUuid класс (так как вы отмечаете этот вопрос как относящийся к Qt):

У этого есть три принципатора, которые могут решить вашу проблему:

QUuid(uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3, uchar b4, uchar b5, uchar b6, uchar b7, uchar b8) 
QUuid(const QString & text) 
QUuid(const GUID & guid) 

Я думаю, что и QUuid("0xA5DCBF10-6530-11D2-901F-00C04FB951ED"), и QUuid(GUID_DEVINTERFACE_USB_DISK) должны создать правильную настройку QUUid.

Если вам нужно преобразовать QUuid обратно в GUID (отправить его в SetupDiEnumDeviceInterfaces), например, в соответствии с this post, вам просто нужно сделать:

QUuid boo("0xA5DCBF10-6530-11D2-901F-00C04FB951ED"); 
GUID uid = static_cast<GUID>(boo); 
+0

Мне нужно, чтобы кормить его окон API, а именно 'SetupDiEnumDeviceInterfaces' Я не вижу никакого преобразования в GUID, если я его использую! – zar

+0

Почему вы не упомянули об этом в OP? – jpo38

+0

Я обновил OP. – zar

Смежные вопросы