Calculadora con Interfaz Grafica (C/SDL) !!

Iniciado por Fire544, 6 Agosto 2012, 05:23 AM

0 Miembros y 4 Visitantes están viendo este tema.

dato000

howto dummies jejeja

Citar
root@datohost:/home/dato000/Documentos/c++/calculadora/calculadora#  gcc Untitled1.c -o salida.exe
gcc: error: Untitled1.c: No existe el fichero o el directorio
gcc: fatal error: no input files
compilation terminated.

Luego me fije, y el archivo es .cpp

Citar
root@datohost:/home/dato000/Documentos/c++/calculadora/calculadora# g++ Untitled1.cpp -o calc
Untitled1.cpp:3:17: fatal error: SDL.h: No existe el fichero o el directorio
compilation terminated.
root@datohost:/home/dato000/Documentos/c++/calculadora/calculadora#

sdl, como carajos lo instalo???



Fire544

Cita de: dato000 en  7 Agosto 2012, 05:23 AM
howto dummies jejeja

Luego me fije, y el archivo es .cpp

sdl, como carajos lo instalo???


Mira googlea un poco, aqui esta lo que buscas,  descomprime e instala o intenta sudo apt-get install sdl1.x.x

http://www.libsdl.org/download-1.2.php
"Si enseñas a pezcar a un niño lo ayudas para toda la vida, si pezcas para alimentarlo lo ayudas por un momento".

dato000

Vale lo instale aparte y le di ademas:


sudo aptitude install libsdl-image1.2-dev
sudo apt-get install libsdl-ttf2.0-dev


Y pues ya no me salen problemas con las librerias.
Ahora me sale esto...


Citar
root@datohost:/home/dato000/Documentos/c++/calculadora/calculadora# g++ Untitled1.cpp -o calc
/tmp/ccXQpwd2.o: In function `create_button(int, int, char const*, int, int)':
Untitled1.cpp:(.text+0xe): undefined reference to `IMG_Load'
Untitled1.cpp:(.text+0x5e): undefined reference to `TTF_OpenFont'
Untitled1.cpp:(.text+0x8c): undefined reference to `TTF_RenderText_Blended'
Untitled1.cpp:(.text+0xba): undefined reference to `TTF_RenderText_Blended'
Untitled1.cpp:(.text+0xe8): undefined reference to `TTF_RenderText_Blended'
Untitled1.cpp:(.text+0x116): undefined reference to `TTF_RenderText_Blended'
Untitled1.cpp:(.text+0x144): undefined reference to `TTF_RenderText_Blended'
Untitled1.cpp:(.text+0x16a): undefined reference to `SDL_UpperBlit'
Untitled1.cpp:(.text+0x18d): undefined reference to `SDL_UpperBlit'
Untitled1.cpp:(.text+0x19a): undefined reference to `SDL_Flip'
Untitled1.cpp:(.text+0x1a5): undefined reference to `SDL_FreeSurface'
Untitled1.cpp:(.text+0x1b0): undefined reference to `SDL_FreeSurface'
/tmp/ccXQpwd2.o: In function `create_label(int, int, char const*, int, int)':
Untitled1.cpp:(.text+0x1e5): undefined reference to `TTF_OpenFont'
Untitled1.cpp:(.text+0x213): undefined reference to `TTF_RenderText_Blended'
Untitled1.cpp:(.text+0x241): undefined reference to `TTF_RenderText_Blended'
Untitled1.cpp:(.text+0x26f): undefined reference to `TTF_RenderText_Blended'
Untitled1.cpp:(.text+0x29d): undefined reference to `TTF_RenderText_Blended'
Untitled1.cpp:(.text+0x2cb): undefined reference to `TTF_RenderText_Blended'
Untitled1.cpp:(.text+0x2f1): undefined reference to `SDL_UpperBlit'
Untitled1.cpp:(.text+0x2fe): undefined reference to `SDL_Flip'
Untitled1.cpp:(.text+0x309): undefined reference to `SDL_FreeSurface'
/tmp/ccXQpwd2.o: In function `create_texbox(int, int)':
Untitled1.cpp:(.text+0x337): undefined reference to `IMG_Load'
Untitled1.cpp:(.text+0x35d): undefined reference to `SDL_UpperBlit'
Untitled1.cpp:(.text+0x36a): undefined reference to `SDL_Flip'
Untitled1.cpp:(.text+0x375): undefined reference to `SDL_FreeSurface'
/tmp/ccXQpwd2.o: In function `SDL_printf(int, int, char const*, int, int)':
Untitled1.cpp:(.text+0x3aa): undefined reference to `TTF_OpenFont'
Untitled1.cpp:(.text+0x3d8): undefined reference to `TTF_RenderText_Blended'
Untitled1.cpp:(.text+0x406): undefined reference to `TTF_RenderText_Blended'
Untitled1.cpp:(.text+0x434): undefined reference to `TTF_RenderText_Blended'
Untitled1.cpp:(.text+0x462): undefined reference to `TTF_RenderText_Blended'
Untitled1.cpp:(.text+0x490): undefined reference to `TTF_RenderText_Blended'
Untitled1.cpp:(.text+0x4b6): undefined reference to `SDL_UpperBlit'
Untitled1.cpp:(.text+0x4c3): undefined reference to `SDL_Flip'
Untitled1.cpp:(.text+0x4ce): undefined reference to `SDL_FreeSurface'
/tmp/ccXQpwd2.o: In function `create_button_efecto(int, int)':
Untitled1.cpp:(.text+0x4fc): undefined reference to `IMG_Load'
Untitled1.cpp:(.text+0x522): undefined reference to `SDL_UpperBlit'
Untitled1.cpp:(.text+0x52f): undefined reference to `SDL_Flip'
Untitled1.cpp:(.text+0x53a): undefined reference to `SDL_FreeSurface'
/tmp/ccXQpwd2.o: In function `crear_pantalla(int, int, char const*, char const*)':
Untitled1.cpp:(.text+0x561): undefined reference to `SDL_Quit'
Untitled1.cpp:(.text+0x56b): undefined reference to `TTF_Init'
Untitled1.cpp:(.text+0x577): undefined reference to `SDL_Init'
Untitled1.cpp:(.text+0x582): undefined reference to `IMG_Load'
Untitled1.cpp:(.text+0x5a7): undefined reference to `SDL_SetVideoMode'
Untitled1.cpp:(.text+0x5bf): undefined reference to `SDL_WM_SetCaption'
Untitled1.cpp:(.text+0x5e2): undefined reference to `SDL_UpperBlit'
Untitled1.cpp:(.text+0x5ef): undefined reference to `SDL_Flip'
/tmp/ccXQpwd2.o: In function `cursor_atras(int, int)':
Untitled1.cpp:(.text+0x639): undefined reference to `SDL_MapRGB'
Untitled1.cpp:(.text+0x653): undefined reference to `SDL_FillRect'
Untitled1.cpp:(.text+0x695): undefined reference to `SDL_MapRGB'
Untitled1.cpp:(.text+0x6af): undefined reference to `SDL_FillRect'
Untitled1.cpp:(.text+0x6f4): undefined reference to `SDL_MapRGB'
Untitled1.cpp:(.text+0x70e): undefined reference to `SDL_FillRect'
Untitled1.cpp:(.text+0x71b): undefined reference to `SDL_Flip'
/tmp/ccXQpwd2.o: In function `cursor_negro(int, int)':
Untitled1.cpp:(.text+0x765): undefined reference to `SDL_MapRGB'
Untitled1.cpp:(.text+0x77f): undefined reference to `SDL_FillRect'
Untitled1.cpp:(.text+0x78c): undefined reference to `SDL_Flip'
/tmp/ccXQpwd2.o: In function `cursor_blanco(int, int)':
Untitled1.cpp:(.text+0x7d6): undefined reference to `SDL_MapRGB'
Untitled1.cpp:(.text+0x7f0): undefined reference to `SDL_FillRect'
Untitled1.cpp:(.text+0x7fd): undefined reference to `SDL_Flip'
/tmp/ccXQpwd2.o: In function `cursor(int, int)':
Untitled1.cpp:(.text+0x847): undefined reference to `SDL_MapRGB'
Untitled1.cpp:(.text+0x861): undefined reference to `SDL_FillRect'
Untitled1.cpp:(.text+0x86e): undefined reference to `SDL_Flip'
/tmp/ccXQpwd2.o: In function `accion_boton_nuevo_calculo()':
Untitled1.cpp:(.text+0xa7a): undefined reference to `SDL_Delay'
/tmp/ccXQpwd2.o: In function `accion_boton_sumar()':
Untitled1.cpp:(.text+0xb6e): undefined reference to `SDL_Delay'
/tmp/ccXQpwd2.o: In function `main':
Untitled1.cpp:(.text+0x1df6): undefined reference to `SDL_WaitEvent'
collect2: ld returned 1 exit status

Algo minimo, es solo una molestia, pero si se puede compilar en linux, o es obligado el uso en visual studio??



Fire544

#13
Cita de: dato000 en  7 Agosto 2012, 05:52 AM
Vale lo instale aparte y le di ademas:


sudo aptitude install libsdl-image1.2-dev
sudo apt-get install libsdl-ttf2.0-dev


Y pues ya no me salen problemas con las librerias.
Ahora me sale esto...


Algo minimo, es solo una molestia, pero si se puede compilar en linux, o es obligado el uso en visual studio??


No mira Visual Studio uff estoy lejos de el, pero fijate puedes compilar en cualquier distro de Linux, lo unico que falta en tu codigo es los linkeos, intenta colgar g++ Untitled1.cpp -o salida.exe -lSDLmain -lSDL -lSDL_image -lSDL_ttf
"Si enseñas a pezcar a un niño lo ayudas para toda la vida, si pezcas para alimentarlo lo ayudas por un momento".

dato000

En linux no me sirven los .exe

Citar
root@datohost:/home/dato000/Documentos/c++/calculadora/calculadora# g++ Untitled1.cpp -o salida -lSDLmain -lSDL -lSDL_image -lSDL_ttf

funciono de perlas!!!!

hey vas volando amigo!!!!! a mi me funciona tanto el alfanumerico como el alternativo!! muy bueno.

DEjo una captura de que si sirve, falta mucho, pero viejo, estas en otro nivel, vas a lo que yo aspiro!!





Fire544

M
Cita de: dato000 en  7 Agosto 2012, 06:19 AM
En linux no me sirven los .exe

funciono de perlas!!!!

hey vas volando amigo!!!!! a mi me funciona tanto el alfanumerico como el alternativo!! muy bueno.

DEjo una captura de que si sirve, falta mucho, pero viejo, estas en otro nivel, vas a lo que yo aspiro!!



ira no te esta cargando la imagen pricipal de la ventana, verifica que en tu directorio images este un .jpg llamado nave.jpg y que este tenga una dimension 640 x 440, sino es a si entonces extrae nuevamente la carpeta images a tu directorio donde estan todas extraidas !! Suerte  :laugh:
"Si enseñas a pezcar a un niño lo ayudas para toda la vida, si pezcas para alimentarlo lo ayudas por un momento".

dato000

#16
pues ni idea, las imagenes estan ahi, y no se en que linea se accesa a tal carpeta.

Editado:

UPS!! ya lo encontre:

Citar
crear_pantalla(300, 220, "images/nave.jpg", "Calculadora Suma");

Lo cambie a:
Citar
crear_pantalla(640, 480, "images/nave.jpg", "Calculadora Suma");

La ruta de la imagen parece estar bien, no comprendo que pasa.

vuelvo con:
Citar
root@datohost:/home/dato000/Documentos/c++/calculadora/calculadora# g++ Untitled1.cpp -o salida -lSDLmain -lSDL -lSDL_image -lSDL_ttf

Podrias explicarme como es el funcionamiento de este comando, lo que viene después de "salida"

-------------------------------------------

Ya descubri el fallo en la imagen, hay que modificar la linea, cambiarle el tamaño a 640x480 y ponerle la extensión correctamente con esto:

Citar
crear_pantalla(640, 480, "images/nave.JPG", "Calculadora Suma");

Ya cambio!!! ahora se ve la imagen! buen trabajo viejo!!





Fire544

#17
No mira aun sigues con el error, carga la imagen, el problema aqui es de dimensiones, ajusta las dimensiones de la funcion crear_pantalla(argc1,argc2,argc3,argc-n), mira intenta esto:


crear_pantalla(300, 220, "images/nave.jpg", "Calculadora Suma");


y antes verifica que la imagen nave.jpg este con dimensiones 300,220, es error de programacion y va de mi parte, mala mia. Tambien puedes optar por editar tu mismo la imagen, agrandandola al tamaño requerido, intenta esto, y listo.

Tambien veo que las cajas de textos no te cargan, verifica las llamadas en los directorios, eso esta en el cabecera "components.h".

Y sobre los enlaces o linkeos de librerias ya sean dinamicas o estaticas, precedidas de -l o -L son para linkear con dichas librerias especificadas, ya que si no le dices al compilador donde buscar las .a\.o entonces, te dira que no haces referencias a dichas librerias y es como si no la encontrara en tu directorio, ya que estas utilizando librerias no pertenecientes al estandar C ANSI, por eso debes de indicar que has instalado nuevas libs.

Salvedad: Al igual puedes dejar la imagen intacta, y solo cambiar los parametros 1 y 2 de tu funcion crear_pantalla() a 300 y 220. Eso si no es recomendable por el uso no aducuado de la imagen, consumiria mas recursos, pero tambien vale !! Suerte  :xD

Mira tiene que quedar asi:

"Si enseñas a pezcar a un niño lo ayudas para toda la vida, si pezcas para alimentarlo lo ayudas por un momento".

dato000



Solo habia que modificar las extensiones del archivo "components.cpp"

Citar
L7          #define BOTON "images/boton.JPG"
L152      texbox = IMG_Load("images/texbox.JPG");
L233      boton_efecto = IMG_Load("images/boton_efecto.JPG");


Ummm tambien veo que la fuente es diferente, pero es que seguramente no hay esa fuente en linux, al menos no esta instalada por defecto en linux mint debian, aunque no es tan determinante.

Viejo muy bueno todo, muy bueno, avisa cuando dejes las otras operaciones. Sigue dandole va genial, algún dia yo hare algo así. Tengo pensado un tetris pero estoy capacitandome.



Puntoinfinito

Has de arreglar a tu "sumadora" que no solo se puedan poner números de numpad.

Saludos
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.