2013-04-26 46 views
-1

我有2個文本框中包含數字。我如何減去它們並將結果放在第三個文本框中。程序集masm你如何減去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 

當我嘗試此代碼它顯示沒有在文本框中

感謝

回答

1

一是GetDlgItemText第三個參數是指向一個緩衝區來保存字符串。註冊表不起作用。您需要將esi和edi加載到緩衝區的地址,例如gettext1和gettext2。

其次,你不能添加字符串。您在屏幕上看到的數字1不是一個真正的數字,而是一個ASCII碼的數字。

您需要獲取文本,轉換爲數字,然後將其轉換爲與SetDlgItemText一起使用的字符串。

爲了使您的生活更輕鬆,只需使用GetDlgItemInt,將數字符串轉換爲數字,並在EAX返回,然後用SetDlgItemInt