c++ - 初始化一个 GUID 变量 : How?

标签 c++ winapi

我正在尝试初始化 GUID变量,但我不确定这是你打算如何去做的。我特别困惑的是如何将最后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));
}

最佳答案

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 } };

关于c++ - 初始化一个 GUID 变量 : How?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14544348/

相关文章:

c++ - 带有像素图的 QLabel : prevent pixmap's color change in disabled state

c++ - 如何防止 "How do you want to open this file"对话框?

winapi - 绕过 ITEMIDLIST 的 MAX_PATH 限制?

c++ - 从外部源向 Windows 调试器发送调试事件

c++ - 线程输入队列是全局的吗?

c# - VS2010 中的混合项目解决方案-托管和 native

c++ - DescrpitorExtractor::create ("SIFT") 返回 0?

c++ - 如何将 VARIANT_BOOL* 转换为 bool*

windows - 如何以编程方式在 Windows 10 的特定监视器上启动应用程序?

c++ - 如果构造函数不接受任何输入参数,则使用显式构造函数?