[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]

[Hilos de Discusión] [Fecha] [Tema] [Autor]

Re: [Ayuda] Bibliotecas de C?




Antonio Tellez Flores wrote:

Saludos

- Conocia de la libreria POSIX para hilos, pero y si quiero que el mismo
programa este disponible para linux y windows?

En Teoría puedes compilar un programa que use bibliotecas POSIX en
Windows NT/2000/XP/2003.
- Dos librerias pueden hacer lo mismo, si tu te decides por una y no por la
otra, pues eso es que favoreces una.  Yo queria saber cuales favorecen ustedes.

Gracias a todos por su invaluable ayuda, ahora ya se mas al respecto y estoy
casi en el punto de mejor dejar C por la paz y hacer la investigacion para C++.

En general es bastante dificil encontrar para todo bibliotecas que
funcionen en Windows y Linux, aun con lenguajes más portables que C.
Incluso aunque existan, no tienen todas las funcionalidades en todas las
plataformas o no tienen la misma estabilidad. Y aunque sean identicas,
la forma de uso varia, lo cual introduce algunas dificultades.
Tal es el caso de ciertos bibliotecas de perl o python por citar algo que me venga a la mente, como dependen de un sistema de archivos, llamemosle mas avanzado, no se contaria con esa funcionalidad.

Por estas razones cuando se programan aplicaciones multiplataforma se
diseña separando las partes no portables de las portables, y luego se
programa la parte especifica de cada plataforma.

Un ejemplo artificial.... supongamos que tienes una aplicación gráfica
que en algún lado despliega un cuadro que dialogo que puede decirte si o
no. Y regresa un entero 1 para si y 0 para no... La parte portable sería
asi

int resultado = pinta_dialogo_si_o_no();

if (resultado = 0) {
   printf("Dijo NO\n");

} else {
   printf("Dijo SI\n");
}

Y generalmente la interfaz gráfica es dependiente de la plataforma,
entonces la separas en una biblioteca, por ejemplo gui.h, ahi tendrias:

#ifdef WINDOWS

int pinta_dialogo_si_o_no(void) {
 /* Aquí pones código especifico de WIndows */
}

#elif LINUX

int pinta_dialogo_si_o_no(void) {
 /* Aquí pones código especifico de Linux */
}

#endif



Hasta la vista.


--
-------------------------------
Gustavo Barron
Consultoria IT & D.signer
http://www.idealabs.tk

-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCA/IT/TW/L/CS/MU d+(--) s-:- a-- C++ UL+++$ L++ E--- W+++$ N+ o+++
K- w O- M+ V- PS+(+++) PE- Y+ PGP t+(---) 5-- X++ R tv++ b++>+++ DI+ D++ G e h* r y+>$
------END GEEK CODE BLOCK------




[Hilos de Discusión] [Fecha] [Tema] [Autor]