将LPBYTE转换为char *

时间:2013-05-14 06:30:25

标签: c++ c

在谷歌“将LPBYTE转换为char *”2小时后,我发现只有“RegQueryValueExW”的结果

除“RegQueryValueExW”功能外,没有人使用“LPBYTE”。

我的问题出现了unicode和ASCII转换,如果我使用RegQueryValueEx,它会给我所有的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 数组,如, enter image description here

哪个是正确的值。(注意“C”后指针值)。 但是当我将它分配给另一个字符数组 strValue 时,只有“C”显示为strValue的值;

如下图所示。

enter image description here

这可能是一个愚蠢的问题,但我不明白我哪里错了。 请建议将我的整个szBuffer转换为strValue的任何帮助,代码块或提示。

0 个答案:

没有答案