Hola como estan .
Mi pequeño gran problema es ...
Que cuando compilo en RadASM ... me sale error
Ejerc2IV.asm(32) : error A2033: invalid INVOKE argument : 2
Ejerc2IV.asm(32) : error A2114: INVOKE argument type mismatch : argument : 2
Quisiera saber como solucionarlo ... o que me dean una pista una explicacion
Lo que quiero hacer es :
Crear una calculadora que sume 2 cantidades, debe tener 3 campo edit
donde:
El primer y segundo campo edit.- se ingresara los valores que se va a sumar.
El tercer campo edit.- mostrara el resultado.
Ademá s debe tener 3 botones con las siguientes funciones:
El primer botón.- Debe hacer la suma.
El segundo botón.- Debe borrar todo los campos edit.
El tercer botón.- cerrar la ventana.
Para desarrollar este programa es necesario usar lo siguiente:
1.- la funciones atodw y dwtoa descritas en el capitulo III.
2.- Debes usar la instrucción add (suma).
Se pide el resultado en decimales, la idea es algo parecido a esta:
Archivo Ejercicio2VI.ASM :
Archivo Ejercicio2VI.inc :
Desde ya Gracias
PD : Estoy estudiando los manuales de RadASM + MASM ... Ejercicio 2 del Capitulo VI.
Mi pequeño gran problema es ...
Que cuando compilo en RadASM ... me sale error
Ejerc2IV.asm(32) : error A2033: invalid INVOKE argument : 2
Ejerc2IV.asm(32) : error A2114: INVOKE argument type mismatch : argument : 2
Quisiera saber como solucionarlo ... o que me dean una pista una explicacion
Lo que quiero hacer es :
Crear una calculadora que sume 2 cantidades, debe tener 3 campo edit
donde:
El primer y segundo campo edit.- se ingresara los valores que se va a sumar.
El tercer campo edit.- mostrara el resultado.
Ademá s debe tener 3 botones con las siguientes funciones:
El primer botón.- Debe hacer la suma.
El segundo botón.- Debe borrar todo los campos edit.
El tercer botón.- cerrar la ventana.
Para desarrollar este programa es necesario usar lo siguiente:
1.- la funciones atodw y dwtoa descritas en el capitulo III.
2.- Debes usar la instrucción add (suma).
Se pide el resultado en decimales, la idea es algo parecido a esta:
Archivo Ejercicio2VI.ASM :
Citar.386
.model flat, stdcall ;32 bit memory model
option casemap :none ;case sensitive
include Ejerc2IV.inc
.code
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke InitCommonControls
invoke DialogBoxParam,hInstance,IDD_DIALOG1,NULL,addr DlgProc,NULL
invoke ExitProcess,0
DlgProc proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
mov eax,uMsg
.if eax==WM_INITDIALOG
.elseif eax==WM_COMMAND
mov edx,wParam
.if eax==Boton01 ; aqui comparo si e presionado el Boton01 que seria Sumar
;si es asi ... realiza la siguiente funcion
mov ebx,Edit01
mov eax,Edit02
add ebx,eax
invoke dwtoa,ebx,addr Edit03 ; aqui dice que esta el error ...
.elseif edx==Boton02 ; este seria el boton de Limpiar pero no se como se hace
.elseif edx==Boton03 ; el boton Salir
invoke SendMessage,hWin,WM_CLOSE,0,0
.endif
.elseif eax==WM_CLOSE
invoke EndDialog,hWin,0
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
DlgProc endp
end start
Archivo Ejercicio2VI.inc :
Citar
include windows.inc
include kernel32.inc
include user32.inc
include Comctl32.inc
include shell32.inc
include masm32.inc
include rvlcnrand.Inc
includelib kernel32.lib
includelib user32.lib
includelib Comctl32.lib
includelib shell32.lib
includelib masm32.lib
includelib rvlcnrand.lib
DlgProc PROTO :HWND,:UINT,:WPARAM,:LPARAM
.const
IDD_DIALOG1 equ 101
Edit01 equ 1001
Edit02 equ 1002
Edit03 equ 1003
Boton01 equ 1004
Boton02 equ 1005
Boton03 equ 1006
;#########################################################################
.data
.data?
buffer db 225 dup (?)
hInstance dd ?
;#########################################################################
Desde ya Gracias
PD : Estoy estudiando los manuales de RadASM + MASM ... Ejercicio 2 del Capitulo VI.