gpt4 book ai didi

c++ - 在 C++ 中读写 Windows 注册表(如何将字符串转换为 wchar(?))

转载 作者:搜寻专家 更新时间:2023-10-31 02:03:56 25 4
gpt4 key购买 nike

这是我作业的一部分。我知道如何打开/读取注册表项和创建值,但我有几个问题。我的代码:

这就是我将新字符串值写入注册表的方式:

void lCreateKeyOne(HKEY hKey, LPCWSTR lSubKey)
{
WCHAR wcValue[] = TEXT"testvalue";
LONG lNewValue = RegSetValueEx (hKey,
L"MytoolsTestKey",
NULL,
REG_SZ,
(LPBYTE)wcValue,
sizeof(wcValue));
}

它有效,但我想生成随机字符串并将其写入注册表项。这就是我生成随机字符串的方式:

static const char alphanum[] =
"0123456789"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz";

int stringLength = sizeof(alphanum) - 1;

char genRandom()
{
return alphanum[rand() % stringLength];
}
srand(time(0));
string Str;
for (unsigned int i = 0; i < 20; ++i)
{
Str += genRandom();
}
  1. 如何将其写成注册表项?
  2. 如何将字符串 Str 转换为 WCHAR wcValue[] ?
  3. 我尝试使用 char 而不是 wchar,它会写汉字 https://learn.microsoft.com/en-us/windows/desktop/api/winreg/nf-winreg-regsetvalueexa

最佳答案

static wchar_t const * const alphanum{
L"0123456789"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz" };

constexpr auto stringLength{ wcslen(alphanum) };

wchar_t genRandom()
{
return alphanum[std::rand() % stringLength];
}

// ...
std::srand(static_cast<unsigned>(std::time(nullptr)));

std::wstring Str;
for (std::size_t i{}; i < 20; ++i){
Str += genRandom();
}

关于c++ - 在 C++ 中读写 Windows 注册表(如何将字符串转换为 wchar(?)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54555124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com