首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

读取std :: string的注册表键值的最简单方法是什么?

在C++中,读取std::string的注册表键值的最简单方法是使用Windows API函数RegGetValueA。以下是一个简单的示例:

代码语言:cpp
复制
#include<iostream>
#include<string>
#include<Windows.h>

std::string ReadRegistryKey(HKEY hKey, const std::string& subKey, const std::string& valueName) {
    DWORD dataType;
    DWORD dataSize;
    std::string result;

    // 获取值的大小
    LONG queryResult = RegGetValueA(hKey, subKey.c_str(), valueName.c_str(), RRF_RT_REG_SZ, &dataType, NULL, &dataSize);
    if (queryResult != ERROR_SUCCESS) {
        std::cerr << "Error querying registry value size: "<< queryResult<< std::endl;
        return "";
    }

    // 分配足够的空间以存储值
    char* buffer = new char[dataSize];

    // 读取值
    queryResult = RegGetValueA(hKey, subKey.c_str(), valueName.c_str(), RRF_RT_REG_SZ, &dataType, buffer, &dataSize);
    if (queryResult != ERROR_SUCCESS) {
        std::cerr << "Error reading registry value: "<< queryResult<< std::endl;
        delete[] buffer;
        return "";
    }

    // 将缓冲区中的字符串复制到结果字符串中
    result.assign(buffer);

    // 释放缓冲区
    delete[] buffer;

    return result;
}

int main() {
    std::string keyPath = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion";
    std::string valueName = "CommonFilesDir";

    HKEY hKey = HKEY_LOCAL_MACHINE;
    std::string value = ReadRegistryKey(hKey, keyPath, valueName);

    std::cout << "Value: "<< value<< std::endl;

    return 0;
}

这个示例代码展示了如何读取Windows注册表中的一个字符串值。请注意,这个示例代码仅适用于Windows平台,并且需要链接到Advapi32.lib库。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

8分41秒

图解贝叶斯|用最简单的方法教你分辨来买东西的人随逛逛的人

4分49秒

089.sync.Map的Load相关方法

1分40秒

如何获取苹果设备的UDID(iPhone/iPad UDID查询方法)

1分12秒

如何快速在手机中查看UDID,无需itunes、itools

1分4秒

苹果怎么查看UDID iPhone/iPad查看UDID教程【详解】

1分4秒

苹果怎么查看UDID iPhoneiPad查看UDID教程【详解】

1分40秒

如何获取苹果设备的UDID(iPhoneiPad UDID查询方法)

1分12秒

如何快速在手机中查看UDID,无需itunes、itools

20分13秒

用上这个 Mock 神器,让你的开发爽上天!

334
48秒

手持读数仪功能简单介绍说明

47秒

VM301稳控科技嵌入式振弦传感器测量模块适用于国内外各种振弦式传感器

2分7秒

手持501TC采集仪连接两线制传感器及存储查看

领券