¿Cómo llamar a la función C ++ desde C?
Yo se esto.
Llamando a la función C desde C ++:
Si mi aplicación estuviera en C ++ y tuviera que llamar a funciones desde una biblioteca escrita en C. Entonces habría usado
//main.cpp
extern "C" void C_library_function(int x, int y);//prototype
C_library_function(2,4);// directly using it.
Esto no destrozaría el nombreC_library_function
y el enlazador encontraría el mismo nombre en sus archivos de entrada * .lib y el problema está resuelto.
¿Llamando a la función C ++ desde C ???
Pero aquí estoy extendiendo una aplicación grande que está escrita en C y necesito usar una biblioteca que está escrita en C ++. El cambio de nombre de C ++ está causando problemas aquí. Linker se queja de los símbolos no resueltos. Bueno, no puedo usar el compilador de C ++ sobre mi proyecto C porque eso es romper muchas otras cosas. ¿Dónde está la salida?
Por cierto estoy usando MSVC