Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: Bomb-P en 23 Enero 2013, 08:13



Título: Se puede usar la libreria windows.h en un programa para linux o mac?
Publicado por: Bomb-P en 23 Enero 2013, 08:13
Lo necesito ya que windows.h lleva la funcion

Código:
Sleep(2000); //Retraso de 2 segundos


Título: Re: Se puede usar la libreria windows.h en un programa para linux o mac?
Publicado por: Khronos14 en 23 Enero 2013, 15:24
No se puede utilizar, porque la librería Windows.h incluye los prototipos de las funciones que se van a enlazar con el linker, que a su vez van a llamar a las funciones de la API de Windows.

En Linux tienes la función usleep que hace básicamente lo mismo. Necesitas incluir la cabecera <unistd.h>.

http://linux.die.net/man/3/usleep

Saludos.


Título: Re: Se puede usar la libreria windows.h en un programa para linux o mac?
Publicado por: Bomb-P en 23 Enero 2013, 20:10
No se puede utilizar, porque la librería Windows.h incluye los prototipos de las funciones que se van a enlazar con el linker, que a su vez van a llamar a las funciones de la API de Windows.

En Linux tienes la función usleep que hace básicamente lo mismo. Necesitas incluir la cabecera <unistd.h>.

http://linux.die.net/man/3/usleep

Saludos.
Muchas Gracias! xD me servira un monton.


Título: Re: Se puede usar la libreria windows.h en un programa para linux o mac?
Publicado por: 0xDani en 24 Enero 2013, 21:22
Quiza te interese la compilacion condicional. Para este caso seria algo asi:

Código
  1. #ifdef _WIN32 /* Deberia estar definido en windows*/
  2.  
  3. #include <windows.h>
  4. #define mySleep(x) Sleep(x);
  5.  
  6. #elif defined __unix__ /* Creo que es esta macro, deberia estar definida en sistemas Unix-like*/
  7. #include <unistd.h>
  8. #define mySleep(x) sleep(x);
  9.  
  10. #else  /* No sabemos donde estamos*/
  11. #warning Missing sleep function
  12.  
  13. #endif
  14.  
  15. /* Aqui tu codigo donde puedes usar mySleep() sin miedo */
  16.