我正在尝试初始化一个参考线变量,但我不确定这是否意味着您要这样做。我特别困惑的是如何将最后12个十六进制数字存储在char数组中(是否包括"-“字符?)
如何定义/初始化GUID变量?
bool TVManager::isMonitorDevice(GUID id)
{
// Class GUID for a Monitor is: {4d36e96e-e325-11ce-bfc1-08002be10318}
GUID monitorClassGuid;
char* a = "bfc1-08002be10318"; // do I store the "-" character?
monitorClassGuid.Data1 = 0x4d36e96e;
monitorClassGuid.Data2 = 0xe325;
monitorClassGuid.Data3 = 0x11ce;
monitorClassGuid.Data4 = a;
return (bool(id == monitorClassGuid));
}
发布于 2013-01-27 04:17:47
Data4
成员不是指针,而是数组。你会想:
monitorClassGuid.Data4 = { 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18 };
让你的榜样发挥作用。您可能会发现,在定义monitorClassGuid
变量的同时进行所有初始化都更容易:
GUID monitorClassGuid = { 0x4d36e96e, 0xe325, 0x11c3, { 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18 } };
发布于 2018-12-14 11:54:15
这个问题很久以前就问过了,但也许它对别人有帮助。
可以使用此代码初始化GUID:
#include <combaseapi.h>;
GUID guid;
CLSIDFromString(L"{4d36e96e-e325-11ce-bfc1-08002be10318}", &guid);
https://stackoverflow.com/questions/14544348
复制相似问题