在“将 LPBYTE 转换为 char*”上 2 小时谷歌后,我只找到了与“RegQueryValueExW”相关的结果
除了“RegQueryValueExW”函数,没有人使用“LPBYTE”。
如果我使用 RegQueryValueEx 会为我提供正确的所有 ASCII 值,但从多国的角度来看,这对我没有帮助,我的问题出现在 unicode 和 ASCII 转换上。
现在,
我有以下代码,
char* GetStringRegKey(HKEY hKey, LPCWSTR strValueName, char* strValue, char* strDefaultValue)
{
strValue = strDefaultValue;
char szBuffer[512];
DWORD dwBufferSize = sizeof(szBuffer);
ULONG nError;
LPCWSTR TempPassingString;
char* hostName;
nError = RegQueryValueExW(hKey, strValueName, 0, NULL, (LPBYTE)szBuffer, &dwBufferSize);
if (ERROR_SUCCESS == nError)
{
strValue = szBuffer;
}
USES_CONVERSION;
return strValue;
}
这将向我显示szBuffer数组,例如,
这是正确的值。(注意“C”后指针值)。但是当我将它分配给另一个字符数组strValue时,只有“C”显示为 strValue 的值;
如下所示。
这可能是一个愚蠢的问题,但我不明白我哪里出错了。请提出任何可以将我的整个 szBuffer 转换为 strValue 的帮助、代码块或提示。