RE:Como compilar en C con Visual Studio 6
Hola Fernando; creo que te estás confundiendo.
Cuando dije que igual con la extensión valía, lo dije porque Borland C++ Builder lo hace (heredado de Turbo C++ que también lo hacía). Está claro que las extensiones de los ficheros son una "convención", pero esa convención se utiliza, al menos en VC6.0. De hecho, tú puedes incluir en un proyecto en VC 6.0 un fichero con extensión .txt, y VC6 _no_ lo compila, aunque esté en el apartado de "Source files" del proyecto. Esto que puede no preocupar a nadie, es un problema cuando tienes un código fuente con extensión .cc, utilizado en algunos sistemas operativos en sustitución del .cpp, y quieres compilarlo en VC6 (y que, por cierto, te obliga a instalar un "parche" que añade una entrada en el registro de Windows).
Si añades un fichero con extensión .c a un proyecto, VC6 lo toma como un fichero de código C, y no de código C++, con lo cual, si pones un "class", no compilará, por mucho que definas el símbolo "__cplusplus". Y eso es porque el símbolo "__cplusplus" no sirve para indicar al compilador cómo hacer su trabajo.
Todo tiene que ver con la diferencia de traducción de los símbolos en el código objeto cuando se compila en C y cuando se compila en C++ (debido a la sobrecarga de C++). El símbolo __cplusplus está definido cuando el compilador está compilando en C++, y éste símbolo se puede (debe) aprovechar en los ficheros de cabecera de las librerías cuando éstas están compiladas en C, y van a ser utilizadas desde C++, con el típico código:
#ifdef __cplusplus
extern "C" {
#endif
// ...
/%2