我用VC向注册表写入一些数据,但遇到这么一个问题。如何把数据转换成REG_DWORD类型并用VC写入注册表。请各位帮帮小弟,谢谢!!!

解决方案 »

  1.   

    BOOL SetRegValue(const char *path, const char *pszKey, int val)
    {
    HKEY key;
    DWORD dwValue, dw;
    long ret; ret = RegOpenKeyEx (HKEY_CURRENT_USER, path, 0L, KEY_ALL_ACCESS, &key);
    if(ret != ERROR_SUCCESS)
    {
    ret = RegCreateKeyEx (HKEY_CURRENT_USER, path, 0L, NULL,
    0, KEY_ALL_ACCESS, NULL, &key, &dw);
    }
    if(ret == ERROR_SUCCESS)
    {
    dwValue = (DWORD)val;
    ret = RegSetValueEx (key, pszKey, 0L, REG_DWORD, (const BYTE*)&dwValue, sizeof(DWORD));
    RegCloseKey(key);
    return (ret==ERROR_SUCCESS);
    } return FALSE;
    }BOOL SetRegValue(const char *path, const char *pszKey, const char *val)
    {
    HKEY key;
    DWORD dw;
    long ret; ret = RegOpenKeyEx (HKEY_CURRENT_USER, path, 0L, KEY_ALL_ACCESS, &key);
    if(ret != ERROR_SUCCESS)
    {
    ret = RegCreateKeyEx (HKEY_CURRENT_USER, path, 0L, NULL,
    0, KEY_ALL_ACCESS, NULL, &key, &dw);
    }
    if(ret == ERROR_SUCCESS)
    {
    ret = RegSetValueEx (key, pszKey, 0L, REG_SZ, (const BYTE*)val, strlen(val)+1);
    RegCloseKey(key);
    return (ret==ERROR_SUCCESS);
    } return FALSE;
    }
      

  2.   

    可以用REG_SZ.直接输入字符串值
    RegSetValueEx (key, pszKey, 0L, REG_SZ, (const BYTE*)val, strlen(val)+1);