簡體   English   中英

如何將表示十六進制值的char轉換為DWORD?

[英]How to convert char that represents hex value to DWORD?

我有一個方法WriteValueDWORD值寫入注冊表:

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值)?

DWORD value = strtoul(searchHandleId, NULL, 16);
sscanf(searchHandleId, "%x", &value);

可能會幫助您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM