VC 将DWORD型16进制转换成字符串,再将字符串转换成DWORD型16进制。

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

11 个解决方案

#1


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

#2


我需要把取出来的数据转换成字符串  这个字符串有别的用处 

#3


不用特殊处理。直接按10进制写就可以。

#4


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

#5


看来我真是没有描述清楚  不好意思

#6


楼主表达不行哦.
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也可

#7


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;
}

#8


路过的,帮LZ顶下

#9


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 = …

#10


太爱你们了  恩~~那

#11


在大家的帮助下  搞定 一会给分


//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

#1


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

#2


我需要把取出来的数据转换成字符串  这个字符串有别的用处 

#3


不用特殊处理。直接按10进制写就可以。

#4


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

#5


看来我真是没有描述清楚  不好意思

#6


楼主表达不行哦.
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也可

#7


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;
}

#8


路过的,帮LZ顶下

#9


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 = …

#10


太爱你们了  恩~~那

#11


在大家的帮助下  搞定 一会给分


//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