2015-11-19 172 views
0

我与其中一个GUID是这样定义的代码工作:如何将GUID值分配给变量?

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

我想在那里被定义为{A5DCBF10-6530-11D2-901F-00C04FB951ED}

如何更改值和使用来自here GUID不同类我设置为这个值或创建一个新的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相关):

它具有threesconstructors,可能会解决您的问题:

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