我有2个带有数字的文本框。如何减去它们并将结果放在第三个文本框中。
我试过这个
.data
gettext1 DB 100 DUP(?)
gettext2 DB 100 DUP(?)
gettext3 DB 100 DUP(?)
.code
LOCAL pmem1 :DWORD
invoke GetDlgItemText,hWin,MeasuredlengthXtextbox,esi,100
invoke GetDlgItemText,hWin,MeasuredlengthYtextbox,edi,100
sub esi,edi
mov pmem1,esi
invoke lstrcpy,addr gettext1,pmem1
invoke SetDlgItemText,hWin,ResultlengthXtextbox,addr gettext3
当我尝试使用此代码时,它在文本框中没有显示任何内容
感谢
答案 0 :(得分:1)
首先,GetDlgItemText的第三个参数是指向保存字符串的缓冲区的指针。寄存器不起作用。您需要使用缓冲区的地址加载esi和edi,例如gettext1和gettext2。
其次,您无法添加字符串。您在屏幕上看到的数字1实际上不是数字,而是数字的ASCII版本。
您需要获取文本,转换为数字,减去,然后转换回字符串以与SetDlgItemText一起使用。
为了让您的生活更轻松,只需使用GetDlgItemInt
将数字字符串转换为数字并返回eax,然后使用SetDlgItemInt