Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/08/2011, 12:28
Avatar de Instru
Instru
 
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Respuesta: Win Api y otras dudas

Primero.

Es un error considerar que Winapi es una extension de C++.

C++ por si solo es un lenguaje totalmente independiente de la plataforma(del sistema operativo).

Lo que hace a C y a C++ tan util en la mayoria de los sistemas operativos, es que tiene un libreria estandar(stdio, stdlib, iostream...etc).
Esta libreria estandar se programa para cada sistema operativo de manera diferente, pero que el resultado sea siempre el mismo. Por eso puedes usar C y C++ en practicamente cualquier sistema con un compilador.

Ahora. Hablemos de Windows.
Cada sistema operativo tiene sus propias caracteristicas y su forma de "hacer las cosas"

Los que desarrollaron windows decidieron crear un paquete que "ayudara" a las programadores a que sus programas interactuen con windows de la mejor manera(usando ventanas, raton.... etc).
A este paquete lo llamaron WINAPI(Windows API: Windows Application Programming Interface). Que como el nombre lo dices es una interfaz para comunicarte con el sistema operativo windows.

Ahora, sabiendo que Windows lleva en el mercado ya bastante años, su Winapi ha ido mejorando para cada vez ofrecer mas funcionalidad, y control sobre lo que quieres hacer.

Si este "paquete" fue creado por windows, seria muy ingenuo pensar que puedes usarlo en otros sistemas operativos. Como te dije antes, cada sistema operativo tiene su forma de hacer las cosas.

Por ejemplo en Linux existe una division muy clara(en windows tambien, pero no es tan clara) entre el sistema en si y el ambiente grafico(ventanas).
Por lo tanto Linux como tal no tiene una manera propia de pintar ventanas.
En este caso, lo mas comun ahora es el sistema "X". X es un sistema cliente-servidor que se acopla con el kernel de linux y ofrece un "interfaz" grafica para este.
Por si no fuera poco, X no ofrece mas que el ambiente grafico. Osea, nada de escritorios bonitos, ni de barras de tareas o de inicio. Para esto existen una amplia variedad de escritorios, entre los mas comunes estan KDE, GNOME, XFCE, Fluxbox, etc.
Estos son los que se encargan de los iconos, los escritorios, que las ventanas se vean bonitas, de que tengas menus, etc, etc.

Entonces como veras tiene por lo menos 2 niveles para programar.
X tiene su propio paquete para que programes llamado Xlibs, totalmente diferente a WINAPI.

Y aparte existen otros "paquetes" que se acoplan mas con los escritorios como QT o GTK para KDE y GNOME respectivamente. Igual. cada uno de estos totalmente distinto al otro.

Y cada sistema operativo tiene sus propios paquetes y formas para programar usando todas sus caracteristicas.

Si te quieres centrar en Windows, lo mas recomendable siempre es la MSDN. Aunque esta en ingles. Dudo que haya un tutorial lo bastante completo y explicado en español, ya que es un tema extremadamente largo, complejo, y a la larga hay otras alternativas mas atractivas.

Espero haber aclarado el panorama.

Saludos