c++ - 如何在 C++ 中从注册表中读取 QWORD(64 位)?
问题描述
如何从注册表中读取 REG_QWORD?最具体地说是 HardwareInformation.qwMemorySize 。我发现用它除以 1024 然后再除以 1024 你可以得到以兆字节为单位的视频内存。如何先阅读 QWORD?我只能找到如何阅读 DWORD。
解决方案
您读取 aQWORD
的方式与读取 a 的方式完全相同DWORD
,使用RegQueryValueEx()
64 位整数变量而不是 32 位整数变量,例如:
HKEY hKey;
if (RegOpenKeyEx(..., KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS) {
QWORD value = 0; // or UINT64, ULONGLONG, ULONG64, ULARGE_INTEGER, etc...
DWORD dwType, dwSize = sizeof(value);
if (RegQueryValueEx(hKey, _T("HardwareInformation.qwMemorySize"), NULL, &dwType, reinterpret_cast<LPBYTE>(&value), &dwSize) == ERROR_SUCCESS) {
if (dwType == REG_QWORD || dwType == REG_BINARY) {
// use value as needed...
}
}
RegCloseKey(hKey);
}
或者,RegGetValue()
改为使用:
QWORD value = 0; // see above...
DWORD dwSize = sizeof(value);
if (RegGetValue(hkey, NULL, _T("HardwareInformation.qwMemorySize"), RRF_RT_QWORD, NULL, &value, &dwSize) == ERROR_SUCCESS) {
// use value as needed...
}
推荐阅读
- amazon-s3 - 构建数据迁移和加载默认数据流程的建议
- r - 在 R 中,在展平嵌套列表时生成正确的列名
- git - ssh 代理 plink 无法弹出 yubikey 输入表单
- reactjs - React Hook Form:当我渲染一个 TextField (materialUI) 并提供 Field: {onChange} 它说 onChange undefined
- sql - 2个表中的SQL多对多关系
- r - 按 DF 中的某个变量分组
- swift - 使用 AVFoundation 快速多摄像头预览
- javascript - react js中通过api解释所见即所得的文本
- drupal - 作曲家搜索未找到托管在 drupal 作曲家存储库中的包
- c# - 使用 AutoFixture 中的 AutoMock 对构造函数中的响应式代码进行单元测试?