📄 get_int.asm
字号:
_GetInt proto:DWORD ,:DWORD
.code
;++++++++++取得一个EDIT控件的值,并自动判断是10进制,还是16进制+++++++++++++
_GetInt proc uses esi edx ecx @hDlg,nID
Local @szBuf[100]:BYTE
lea esi,@szBuf
invoke SendDlgItemMessage,@hDlg,nID,WM_GETTEXT ,100,esi
mov dl,[esi]
mov dh,[esi+1]
mov cl,[esi+eax-1]
mov ch,dl
.if dx=='x0' || dx=='X0' || dx=="H&" || dx=="h&" ;是否为16进制
lea eax,[esi+2]
invoke h2dw,eax
.elseif cl=='h' || cl=='H' ;是否为16进制
mov BYTE ptr [esi+eax-1],0;去掉最后的h或H
invoke H2DW,esi
.else ;没有0x开头,也没有h结尾,则看是否包含a-f(A-F),如果包含,则是16进制,否则是十进制数值
mov edx,esi
lodsb
.while al
.if (al>='a' && al<='f') || (al>='A' && al<='F')
invoke H2DW,edx
ret
.endif
lodsb
.endw
invoke GetDlgItemInt,@hDlg,nID,0,0
.endif
ret
_GetInt endp
;---------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -