jorgelig escribió:
¿Entonces en que programan ?
Imagino que en C o C++, pero vamos, es una suposición.
A ver, imaginemos que tu programa, en determinado momento tiene que reproducir un vídeo. Podrías molestarte y hacer tu la programación, pero has encontrado una librería (winvideo) que lo hacen, el problema es que sólo es compatible con Windows (por diversos motivos distintos SO's manejan el vídeo de formas diferentes, algunos lo meten dentro del kernel, otros tienen distintas capas para ello,...) Pero bueno, estás tu ahí con tu parte de vídeo, el resto de la aplicación no has usado nada extraño y es compatible con cualquier SO. ¿Entonces qué haces? Pues buscas librerías linuxvideo y macvideo, a través de un par de defines, if defined y demás cosillas del precompilador de C, juegas cargando una u otra librería para el caso.
Evidentemente, cuanto más dispares sean las librerías más te tocará trabajar para hacerlo compatible, por lo general (lo que yo haría) sería añadir una capa más y normalizar todas las funciones, por ejemplo si tengo la función linuxvideo_start y winvideo_start, pues crearía una función conejovideo_start que llamaría a una u otra dependiendo de la librería cargada y del SO destinatario, así sólo tendría que cambiar a qué SO va dirigido y no tener que añadir condicionales e historias raras cada vez que quiera usar una función de esas.
¿Cuándo vienen los problemas? Pues cuando esas librerías son diferentes, o tienen funciones con diferente comportamiento, debido al SO, entonces te toca entrar y modificar o solventar bugs.
Algunas en cambio son compatibles, creo que SDL, openGL,...