PDA

Ver la versión completa : Programando en C++/SDL ifdef



snork3ls
05/11/2011, 05:36
Como dice el titulo tengo el problema con eso.

Como podeis ver debajo de mi comentario estoy con cierto programa para Caanoo.

El problema es que tengo que acceder al sistema de archivos. En mi ordenador es en windows y en la consola en Linux. Evidentemente las funciones son diferentes.

Lo que necesito saber es como utilizar los malditos IFDEF/ENDIF.

El problema es lo que tengo que escribir.

Pongamos que tengo que ejecutar la funcion leerWin para leer el directorio en windows y la funcion leerCaanoo para leer el directorio en Caanoo.

El rollo es que tengo que poner:


ifdef nosequedewindows
leerwin
endif
ifdef nosequecaanoo
leercaanoo
endif

No se que tengo que poner en nosequewindows ni en nosequecaanoo para poder utilizarlo en el compilador.

Ahora mismo como no se como hacerlo tengo el programa completo en windows pero cada vez que tengo que hacer una prueba tengo que poner como comentario las lineas de Caanoo para ejecutarlo y para compilarlo poner en comentario las lineas de windows.

No se si me he explicado bien del todo que llevo mi ciego tipico. Si no esta bien subo el cachito de codigo.

Es que no he hecho nada porque tengo que escribir el codigo para linux, compilarlo y subirlo a la Caanoo. No puedo hacer pruebas intermedias y me vuelvo loco haciendo copias a la consola. Al final agobia.

Por favor QUE ALGUIEN ME AYUDE QUE NECESITO EL PROGRAMA PARA TOCAR CON MI GRUPO!!!

LTK666
05/11/2011, 09:42
#ifdef CAANOO
...
#endif

o


#ifdef WINDOWS
...
#endif

Las palabras CAANOO y WINDOWS son de tu elección, puedes acordar usar (casi) la que quieras siempre que a la hora de compilar se le indique que es lo que que está definido:

- Indicando en la linea de compilación -DCAANOO o -DWINDOWS. Más cómodo, solo se pone una vez y el define es extensivo a toda la compilación.
- bien por un #define WINDOWS o #define CAANOO en el propio archivo. Engorroso, ha de ser cambiado en cada cambio de compilador (windows-caanoo) y solo vale para el archivo que lo contiene.

EDITADO: Gracias hardyx !!! se me fue la pinza

También te propongo:

#define CAANOO
..........................funciones para caanoo
#else
..........................funciones para cualquier otro, no caanoo.
#enfid


Aprovecho la edición para añadir:

#define CAANOO
..........................funciones para caanoo
#elseif WINDOWS
..........................funciones para windows
#else
..........................funciones para cualquier otro, no caanoo y no windows.
#enfid

hardyx
05/11/2011, 11:24
Suscribo lo que dice LTK666, pero la estructura a usar sería:

#ifdef CAANOO
..........................funciones para caanoo
#else
..........................funciones para cualquier otro, no caanoo.
#endif

Si usas CodeBlocks por ejemplo, en las propiedades del proyecto, en cada perfil (Caanoo, Windows) puedes indicar los defines que quieres activar.