• Domingo 15 de Diciembre de 2024, 15:55

Autor Tema:  Prototipos, Header?  (Leído 1043 veces)

angelrash

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Prototipos, Header?
« en: Miércoles 9 de Junio de 2004, 23:11 »
0
Hola.  a Tod@s
1.- Disculpen si molesto a alguien.... :-) sorry pues... :-)
     Es mi primera participacion en este foro y espero ser util.
2.- Soy aficionado a la programacion, pero estube alejado un tiempo mas o menos
     largo, es decir me quede cuando se utilizaba el WNDCLASS, ahora se usa
     WNDCLASSEX uds. comprenden (WIN16 ahora se usa WIN32)
3.- Tengo esta duda hace mucho... y ya quiero deshacerme de ella de una vez.
     (No habia mucha gente con quien intercambiar ideas ....).
      I) Cuando hacia proyectos en C/C++ casi todos los autores recomendaban
          crear archivos de cabecera los *.h y definir los prototipos ahi, pero a mi me
          resultaba tedioso escribir mi archivo principal *.cpp cambiar a la ventana
          del H y añadir la definicion de la funcion repitiendo codigo. algo asi como
          (esto es pseudocodigo)
// *.h
  funcion1(int a,char B)
  funcion2()

// *.cpp
main()
   funcion1(...)
   funcion2()
...
  funcion1(int a,char B)
  ...
  funcion2()
  ...

        pero si solo usas un archivo *.cpp y pones algo asi como.
// *.cpp
...
  funcion1(int a,char B)
  ...
  funcion2()
  ...

main()
   funcion1(...)
   funcion2()

        funciona igual pones al final el main y lo mismo sucede son WINDOWS
//*.cpp
  wndproc1(...)
  ...
  wndproc2(...)
  ...
winmain(...)
  wndclass.lpfnWndProc=funcion1
...

ahora creo yo que se deve usar *.h es decir yo pongo ahi definiciones de tipos, contantes enumeraciones etc. pero no pongo nada de funciones y sus prototipos
eso se hace creo yo para acceder digamos a windows nada mas cuando uno ve el
codigo de windows.h ahi si pues se esta accediendo a funciones que estan en los DLL GDI KERNEL etc que Microsoft windows pretende mantener oculto por ovias razones, pero a un programador medio no me parece hacerce lios con las definiciones previas

       II) Ayuda si les pido ayuda pues mis progamas WIN16 no funcionan bien
           estoy migrando a WIN32 por mis propios medios pero me dificultoso
           agradesco anticipadamente a alguien k me pase algunos URLs con
           informacion de WINDOWS/2K/2000/XP ... pero que no sea nada visual
           que sea c/c++, es k no me gusta k me suban a la montaña si puedo hacelo
           yo mismo, igual me pasa en programacion, no me gusta el VISUAL * .
           ah por cierto alguien tiene acceso a los archivos GIFs, JPEG. es decir
           manipularlos leerlos, ver su cabecera, visualizarlos, etc. es para un
           proyecto de control. gracias..... :-)

PD... quisiera responder a un reto k vi por aca. pero como no tengo mucho tiempo
        espero comprendan repondere aqui...

se trata de dibujar una linea en la pantalla, indicar su pendiente, y otras cosas mas
creo k se trata de un metodo numerico y no usar line(...) del BGI sino mas bien algo asi como.

y=m(x+c),  m = deltaY/deltaX

y graficar la linea pixel por pixel, los valores de x varian y se grafica en la pantalla
haciendo una transfomacion de coordenadas simple.
la proxima vez le madare el codigo fuente....

es matematica basica....

chau. BYE-BYE
Dualidad de la existencia.
Dia/Noche, Vida/Muerte,
Bueno/Malo, Pasion/Apatia,
1/0, [bit]Angel/RASH soy YO.

-SB-

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
Re: Prototipos, Header?
« Respuesta #1 en: Jueves 10 de Junio de 2004, 15:29 »
0
Utilizar bien los archivos cabecera es sinónimo de una programación bien estructurada, tanto para "un programador medio" como para windows como tu dices.

Puedes usar los archivos de cabecera para crear, por así decirlo, la interface de cada objeto, declarando ahí las especificaciones de las funciones publicas de tu objeto.

Aplicando el principio de esconder información, habrá variables, constantes, etc que los demás objetos no tendran por qué conocer, y sera mejor que no los conozcan, para que todo funcione bien.

Utilizar los .h nos da ademas, la posiblidad de compilar objetos cada uno por su lado, utilizar "object files (.o)" nos permitira una  compilacion separada, es decir: que yo puedo hacer un modulo con su .c y .h, y puedo compilarlo y dartelo, de hecho no me hara falta darte el codigo, con darte el objeto y las especificaciones tu podras utilizarlo (y esto es lo que hace windows).

En cuanto la compatibilidad de las funciones, a lo mejor deberias programar con un nivel de abstraccion mas alto, para no tener las complicaciones que estas teniendo, si es posible en el tipo de programas que hagas. Si estariamos hablando de programas de unix, un programa de hace 20 años te funcionaria perfectamente, pero ya sabemos como es windows, a si que lo mejor es, si es posible utilizar un nivel superior de abstrabcion como antes he dicho, o para esas funciones que requieran un nivel mas bajo, hacer una compilacion separada, de forma que si algun dia cambiamos de plataforma, nos sea suficiente con cambiar esas funciones y no todo el programa.

Espero haberte servido de algo,

Un saludo!!

SB.