作者Picoro (我想吃螃蟹啊 Orz)
看板C_and_CPP
標題[問題] 關於writeprocessmemory的問題 ...
時間Thu Oct 8 04:31:35 2009
其實剛剛打了一篇文章又刪掉 ,
主要是這邊前輩高手這麼多 ,
很怕這問題讓各前輩高手覺得太簡單而不高興 ...
但基於想解決問題的心態 , 還是上來被各位前輩高手教訓一頓好了 Orz
事情是這樣子的 ,
我今天有個整數 82 , 我想要把它寫到memory中 ,
因為要變成16進制 , 所以理論上它在memory中要變成 52 ,
為了迎合writeprocessmemory的特性 ,
我是這樣寫的 ,
char symbol_l[1] = {0x00 | StrToInt(IntToHex(l_value,2))} ;
我知道有90%的人看到我這麼寫就想揍我了 Orz
事實上 , 這東西的確也有問題 ...
StrToInt這個function , 遇到像 0A 0B 0C 之類的 , 就直接掛掉了 ,
不過我因為對C語言的程度 , 只是在大概知道這東西的程度 ,
所以也想不出其他辦法 ,
只能上來請各位前輩高手們指導一下了 ...
--
閃小桃 - 甜蜜樂章的配音........Orz 說:
對阿 剛剛那個外籍新娘還長相OK又是大奶妹 自己挑都不一定交得到那麼好的
閃小桃 - 甜蜜樂章的配音........Orz 說:
台灣交女朋友要是不小心交到公主 可不只一百萬呢
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.252.203
1F:→ Picoro:啊 ... 改成 StrToInt("0x"+IntToHex(l_value,2)) 就對了 10/08 04:50
2F:→ Picoro:但我還是覺得我的寫法很怪 Orz 10/08 04:50
3F:推 LPH66:你把表現內容的方式和實際儲存的值搞混了 10/08 06:23
4F:→ LPH66:你不需要管它是不是幾進位 只要存對的數字進去就行了 10/08 06:23
5F:推 LPH66:除非你真的是要寫入 "0x52" 這樣四個 byte 的字串 10/08 06:25
6F:→ LPH66:但看你宣告 char symbol_l[1] 又不像是四個 byte... 10/08 06:25
7F:推 VictorTom:推樓上:) 0x52, 80, 0120, 這些東西對電腦來說都是一樣 10/08 09:04
8F:→ VictorTom:的, 不同進位的表現值只有我們看的時候不同, 真正在電腦 10/08 09:04
9F:→ VictorTom:裡代表的數是一樣的; 除非你要寫成"..."字串:) 10/08 09:05
10F:→ Picoro:soga ... 對唷 ... 我好像忽略這點了 Orz 10/08 12:00