[NDS] pasar de c a c++ (ayuda)

hola, ya llevo tiempo programando para NDS, programo con PA_lib y libNDS, pero programaba en C, y hoy me he decidido a cambiar a C++ porque quiero meterle clases a un programa y tal y e hace falta, total, que creia que con cambiar la extension a .cpp y para compilar ejecutar el mismo Make serviria, pero creoq eu continua compilando en C, porque me petan cosas que no deverian...

alguien puede ayudarme), gracias
Si estas usando un Makefile 'estandar' que tira de g++ (lo cual es bastante probable) se me ocurre que los problemas los tienes al mezclar partes de C con C++


Para poder utilizar una funcion de C bajo C++ hay que declararla como de C

extern "C" void ejemplo();

Pero tambien puedes recurrir a definir una seccion de codigo de esta forma:

#ifdef __cplusplus
extern "C" {
#endif

// declaracion de funciones C o variables necesarias

extern int jodt;

void perroverde(int onoff);

#ifdef __cplusplus
};
#endif

Esto lo puedes meter en tus .h para declarar tus funciones C tanto a la forma de C como a la de C++

Por cierto, que dado que la definicion __cplusplus la pone internamente el compilador, podrias usar ese test para conocer si estas utilizando el compilador de C o C++ a la hora de compilar
Gracias por contestar, ya lo he solucionado cambiando el makefile...

ahora tengo otra duda que no se si tambien sabras, supongo que sera alguna chorrada, la tengo escrita en este hilo.

http://www.elotrolado.net/showthread.php?s=&threadid=653527


PD: muchas gracias
Bueno, tengo mi c++ oxidado, pero puedes usar el elemento c_str() para 'extraer' el array.


String my_string;

char *punt;

....
punt=my_string.c_str();


Si lo que quieres es copiarlo, puedes usar la funcion strcpy, por ejemplo
Tienes que hacer un cast para que funcione eso
4 respuestas