2

レジストリ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、16 進数を表すことです。

 printf( "Found .... hWnd: (%s)\n", searchHandleId);   

出力:Found .... hWnd: (002F1CE0)

(私の場合はDWORD値)に変換する方法はsearchHandleIdvalue

4

2 に答える 2

5
DWORD value = strtoul(searchHandleId, NULL, 16);
于 2013-09-14T13:04:52.757 に答える
2
sscanf(searchHandleId, "%x", &value);

あなたを助けるかもしれません。

于 2013-09-14T13:05:54.237 に答える