C/Visual C - Utilizar una función en Unix y en Windows

 
Vista:

Utilizar una función en Unix y en Windows

Publicado por rraces (25 intervenciones) el 19/05/2006 11:31:39
Hola amigos, mi consulta es la siguiente, quiero utilizar una misma función para windows y para unix, pero para que funcione tiene en unix tengo que hacer algunos retoques en dicha funcion, para no tener dos fuentes distintos en el que solo cambia esa función para cada sistema operativo, existe alguna forma de que según el sistema operativo en el q se este ejecutando utilize una función u otra.

sería una cosa como
if ( Sistema Operativo == UNIX)
{
FUNCION()
{
cuerpo de la funcion para que funcione en unix
}
}
else
{
FUNCION()
{
cuerpo de la funcion para que funcione en Windows
}
}

Gracias por vuestra ayuda
UN saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Utilizar una función en Unix y en Windows

Publicado por fernando.gomez (1603 intervenciones) el 19/05/2006 19:11:34
Bueno, no puedes definir una función en el cuerpo de otra función. La forma en la que tradicionalmente se hace lo que quieres, es la siguiente:

void funcion()
{
#if defined(_WINDOWS)

// empleas el API de Windows

#elif defined(_UNIX)

// empleas el API de Unix

#endif
}

Claro, al compilar tendrías que decirle al compilador que defina _WINDOWS o _UNIX, respectivamente, dependiendo de tu ambiente.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Utilizar una función en Unix y en Windows

Publicado por rraces (25 intervenciones) el 22/05/2006 15:00:05
y como le digo al compilador que defina _WINDOWS y _UNIX.

Gracias por tu ayuda.
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Utilizar una función en Unix y en Windows

Publicado por fernando.gomez (1603 intervenciones) el 22/05/2006 17:17:19
Siempre puedes ver el manual de usuario de tu compilador, claro. No sé qué compiladores estés empleando -mi bola de cristal se rompió hace un par de semanas-, pero usualmente es al pasarle los parámetros en la línea de comandos.

En Visual C++, se define automáticamente el de _WINDOWS. Y por ejemplo, esta es la línea de parámetros que usa el Embedded Visual C++ 4 para compilar:

/nologo /W3 /Zi /Od /D "DEBUG" /D "ARM" /D "_ARM_" /D "ARMV4" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "_AFXDLL" /FR"ARMV4Dbg/" /Fp"ARMV4Dbg/CVDSD.pch" /Yu"stdafx.h" /Fo"ARMV4Dbg/" /Fd"ARMV4Dbg/" /M$(CECrtMTDebug) /c

En este caso, se define el símbolo _WIN32_WCE.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar