无法从注册表中读取REG_SZ数据类型

时间:2013-01-25 06:03:23

标签: c

我有读取REG_DWORD的函数,但无法读取RED_SZ任何想法如何修复

    string read_reg(char rpath[],char rdata[])    // read registery Loaction
    {
    // string sMHz;
    char buffer[MAX];   // for storing read value from registery will be return 
    char Buffer[MAX];
    DWORD BufSize = _MAX_PATH;
    DWORD dwMHz = _MAX_PATH;
    HKEY hKey;
    // open the key where the processor speed is hidden:
    long lError = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
                            rpath,
                            0,
                            KEY_READ,
                            &hKey);

        if(lError != ERROR_SUCCESS)
          {// if the key is not found, tell the user why:
               FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,
                             NULL,
                             lError,
                             0,
                             Buffer,
                             _MAX_PATH,
                             0);
               return "N/A";
           }
           cout<<"\n program ok";
            // query the key:
            RegQueryValueEx(hKey,rdata,NULL,NULL,(LPBYTE) &dwMHz,&BufSize);
        // convert the DWORD to a string:
            cout<<"\n value of dwMHz "<<dwMHz;
        wsprintf(buffer, "%d", dwMHz);
        RegCloseKey(hKey);  // close open handle ....
    return buffer;
    }

我得到cpu速度但是当我通过REG SZ数据类型....它无法工作

0 个答案:

没有答案