我有一个方法WriteValue
,它将DWORD
值写入注册表:
const char *WriteValue(char* searchHandleId)
{
//...
DWORD value = atoi(searchHandleId); // wrong!!!
LONG result_write = RegSetValueEx(
hkey,
"hwnd_to_track",
0,
REG_DWORD,
(const BYTE*)&value,
sizeof(value)
);
//..
}
问题是searchHandleId
表示十六进制数字:
printf( "Found .... hWnd: (%s)\n", searchHandleId);
输出:Found .... hWnd: (002F1CE0)
如何将searchHandleId
转换为value
(在我的情况下是DWORD值)?
答案 0 :(得分:4)
DWORD value = strtoul(searchHandleId, NULL, 16);
答案 1 :(得分:2)
sscanf(searchHandleId, "%x", &value);
可以帮到你。