Se puede usar la libreria windows.h en un programa para linux o mac?

Iniciado por Bomb-P, 23 Enero 2013, 08:13 AM

0 Miembros y 1 Visitante están viendo este tema.

Bomb-P

Lo necesito ya que windows.h lleva la funcion

Sleep(2000); //Retraso de 2 segundos

Khronos14

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.

Bomb-P

Cita de: Khronos14 en 23 Enero 2013, 15:24 PM
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.

0xDani

Quiza te interese la compilacion condicional. Para este caso seria algo asi:


#ifdef _WIN32 /* Deberia estar definido en windows*/

#include <windows.h>
#define mySleep(x) Sleep(x);

#elif defined __unix__ /* Creo que es esta macro, deberia estar definida en sistemas Unix-like*/
#include <unistd.h>
#define mySleep(x) sleep(x);

#else  /* No sabemos donde estamos*/
#warning Missing sleep function

#endif

/* Aqui tu codigo donde puedes usar mySleep() sin miedo */
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM

Turriano

Cita de: Khronos14 en 23 Enero 2013, 15:24 PM
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.

Hola!
Yo necesitaba usar esa función para usar beep

¿Me podrías explicar sobre los pasos a seguir?
Gracias!
"Yo sólo se, que no se nada".