如何将GUID值分配给变量

How to assign GUID value to a variable?

本文关键字:分配 变量 GUID      更新时间:2023-10-16

我正在处理GUID定义如下的代码:

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

我想更改值并使用不同的类GUID,在这里它被定义为{A5DCBF10-6530-11D2-901F-00C04FB951ED}

如何设置为该值或创建一个新的GUID变量,该变量设置为此值?

根据这里的另一个答案,我试过了,但不起作用

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

请注意,此GUID稍后在我的代码中由windows API使用:

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

检查此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),你只需要执行以下操作:

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