初始化 GUID 变量:如何
Initialise a GUID variable: How?
我正在尝试初始化一个 GUID 变量,但我不确定这就是你打算这样做的方式。我特别困惑的是如何在 char 数组中存储最后 12 个十六进制数字(我是否包含"-"字符?
如何定义/初始化 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 } };
这个问题很久以前就被问过了,但也许它对其他人有帮助。
可以使用此代码初始化 GUID:
#include <combaseapi.h>;
GUID guid;
CLSIDFromString(L"{4d36e96e-e325-11ce-bfc1-08002be10318}", &guid);
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 当字符串存储在变量中时,如何将字符串转换为wchar_t
- 如果用户输入无效,如何使用字符串变量-C++重复输入命令
- 如何从另一个文件继承私有成员变量和公共函数
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- 如何从子成员函数修改父公共成员变量
- 如何将C++闭包与变量参数同时重用——类似于JavaScript
- C++:如何读取分离变量,然后读取向量
- C++如何通过"constructor initialization"初始化行变量?
- 如何避免在仅标头库中C++类/变量重定义
- 如何声明一个可以在整个程序中使用的全局 2d 3d 4d .. 数组(堆版本)变量?
- 如何使用 llvm-10 库在C++定义 LLVM 全局值变量?
- 切换大小写后如何阻止变量重置?
- 如何在保持其值的同时将 c++ 无符号字符变量转换为 char 变量
- 如何为 c++ 的不同变量类型的结构元素创建动态数组?
- 如何使用C++将字符串中的字符转换为整数变量
- 如何使用文件中的文本,例如变量
- 继承时如何构建派生类的变量?
- 如何使用用户输入变量制作二维数组?
- 如何使变量从 x 到 y,然后从 y 返回到 x 并始终重复该过程