我做了一个MapViewOfFile来获取指向我文件开头的指针,之后我想以hexa打印它的值。
当我将其打印为字符串时,我得到" MZ"这是一个好的价值(神奇的数字),但我希望它在六进制(5A4D)。
我尝试在wsprintf中使用%x进行格式化,但它不起作用,我的值为230000 ..
编辑试用的%x:
.data
header_format db "The header is: %x",0
buffer db 256 dup(?) ; File data
.data?
pMemory DWORD ? ; Pointer to the data in the source file
getData:
;pMemory is the ptr which is correctly printed with %s
invoke wsprintf, ADDR buffer, ADDR header_format, [pMemory] ;
invoke MessageBox, NULL, Addr buffer, Addr header_test, MB_OK
你有什么建议吗?
感谢。
答案 0 :(得分:0)
最终使用此解决方案:
push STD_OUTPUT_HANDLE
call GetStdHandle
mov eax, pMemory
push eax
print right$(uhex$(eax),2),13,10
pop eax
mov eax, pMemory
push eax
print right$(uhex$([eax]),2),13,10
pop eax