2015-11-19 170 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