RegQueryValueEx()取出来是DWORD型10进制,将其转换成字符串。再用RegSetValueEx()将字符串转换成16进制写入注册表(注册表默认是16进制)。
注:函数会用,就是不知道类型之间怎么转换。

解决方案 »

  1.   

    好像不需要额外的转换,将RegQueryValueEx取出的数修改后,直接使用RegSetValueEx即可,只是注册表的数据类型要是REG_DWORD。
      

  2.   

    itoa atoi
    至于16进制你自己转换。
      

  3.   

    楼主表达不行哦.
    DWORD型16进制 没这种说法.可以这么说:DWORD型转16进制 16进制转DWORD型
    DWORD转换十六进制:DWORD value=999;
    char _char[255];
    ltoa(value,_char,16);
    十六进制转换DWORD:CString _char="FFE";
    value=(DWORD)strtoul(_char,   NULL,   16); 
    使用CString.Format也可
      

  4.   

    1、数据转字符串:
    CString strValue;
    strValue.Format("%d", nValue);2、字符串转数值(仅能转换为int整形,错误时返回-1):
    int StrToInt(LPCTSTR lpszNumber)
    {
    if (NULL == lpszNumber || '\0' == *lpszNumber)
    return -1;

    int nNumber = 0;
    int iLen = lstrlen(lpszNumber);
    for (int i = 0; i < iLen; i++)
    {
    if (!::isdigit(*(lpszNumber + i)))
    return -1;
    //累加数值。
    nNumber = nNumber * 10 + (*(lpszNumber + i) - '0');
    } return nNumber;
    }
      

  5.   

    1、数据转字符串: 
    CString strValue; 
    strValue.Format("%d", nValue); 2、字符串转数值(仅能转换为int整形,错误时返回-1): 
    int StrToInt(LPCTSTR lpszNumber) 

    if (NULL == lpszNumber || '\0' == *lpszNumber) 
    return -1; int nNumber = 0; 
    int iLen = lstrlen(lpszNumber); 
    for (int i = 0; i < iLen; i++) 

    if (!::isdigit(*(lpszNumber + i))) 
    return -1; 
    //累加数值。 
    nNumber = …
      

  6.   

    在大家的帮助下  搞定 一会给分
    //DWORD(16进制)转换成 字符串   DWORD dwGetValue = 0x1234;
    CString szValueData;
    szValueData.Format(_T("%x"), dwGetValue);
    //输出:szValueData 为 1234 //字符串 转换成 DWORD(16进制) CString strdWord = _T("123456"); 
    DWORD dwWord = _tcstoul(strdWord, NULL, 16);
    //输出: dwWord 为 123456