Holas.... bueno estoy intentando crear en asm una consola con las api de windows... , la genera bien y todo pero no puedo imprimir cosas en la consola y nose porque es, aqui les dejo el codigo haber si ustedes saben solucionarlo.
include 'c:\archivos de programa\include\win32ax.inc'
.data
msgerror db 'No se a encontrado la consola',0
tituloerror db 'Error',0
tituloconsola db 'Drinky Console in Asm',0
linea db 'Esta es mi consola!',0
hwnd dd ?
escribe dd ?
longitud dd ?
.code
start:
invoke AllocConsole
invoke GetStdHandle,STD_INPUT_HANDLE
cmp eax,0
ja correcto
jbe incorrecto
correcto:
mov [hwnd],eax
invoke SetConsoleTitle,tituloconsola
invoke lstrlen,linea
mov [longitud],eax
invoke WriteConsole,hwnd,linea,longitud,[escribe],NULL ; Esta es la linea que creo que falla
jmp fin
incorrecto:
invoke MessageBoxA,0,msgerror,tituloerror,MB_ICONERROR
jmp fin
fin:
ret
.end start
salu2! y esperando respuesta.
Primero estas creando un programa que no es realmente de consola y por eso tenes que llamar a AllocConsole.
Agregando esto al principio no hace falta y tu programa tendra como subsystem en el PE console:
format PE console
Segundo estas pidiendo el HANDLE para la ENTRADA, es decir el teclado, tenes que pedir la salida, el monitor:
invoke GetStdHandle, STD_OUTPUT_HANDLE
Y tercero efectivamente la linea de WriteConsole esta mal, deberia ser asi:
invoke WriteConsole, [hwnd], linea, [longitud], escribe, NULL
ufff, cierto, muchas gracias Eternal idol... ejeje esto de empezar en asm... XD
salu2! y gracias.
De nadas ::)