Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Error En "afxtempl.h"

Iniciado por Ipis, 08 de Noviembre de 2003, 03:22:43 AM

« anterior - próximo »

Ipis

 Por qué de repente al compilar en VC++ me salen errores del tipo:

c:\archivos de programa\microsoft visual studio\vc98\mfc\include\afxtempl.h(103) : error C2894: templates cannot be declared to have 'C' linkage

c:\archivos de programa\microsoft visual studio\vc98\mfc\include\afxtempl.h(134) : error C2733: second C linkage of overloaded function 'ConstructElements' not allowed
       c:\archivos de programa\microsoft visual studio\vc98\mfc\include\afxtempl.h(134) : see declaration of 'ConstructElements'

c:\archivos de programa\microsoft visual studio\vc98\mfc\include\afxtempl.h(1561) : fatal error C1003: error count exceeds 100; stopping compilation

c:\archivos de programa\microsoft visual studio\vc98\mfc\include\afxtempl.h(1566) : error C2059: syntax error : 'end of file'


cuando yo ni siquiera he tocado el archivo "afxtempl.h" y el programa funcionaba bien hasta hace un momento???

En la ayuda lo que me aparece es:
templates cannot be declared to have 'C' linkage

extern "C" template<class T> void f(const T &aT) {} //error

Pero en el archivo no aparece ningún extern "C" ni nada por el estilo...a qué puede deberse tantos errores???
Lo último que hice fue añadir algunas funciones al mapa de mensajes de la clase MyAppView.....porfa,si alguien puede ayudarme...me estoy volviendo loca!!!!  (nooo)

Gracias ;)  

MChiz

 Hola:

Tiene toda la pinta de ser lo que el help te dice : )
No tiene porque estar el 'extern "C"' en el mismo archivo que te da error. Puedes hacer algo asi:

extern "C" {
#include "afxtempl.h"
}

Y con esto obtendrias el mismo resultado. Si quieres, cuelga el codigo en alguna parte o enviamelo por mail. Intentare ayudarte.

Un saludote!

Ipis

 Hola MChiz,gracias por tu respuesta.

Perdona mi ignorancia,pero...qué código exactamente tengo que colgar??

El caso es que el único archivo con referencia a "afxtempl.h" está en un archivo que controla la apariencia del menú("BCMenu.h"),donde aparece lo siguiente:

#include

También he buscado alguna cadena con " extern "C" " en todos los archivos de mi proyecto,pero no aparece ninguna.

Basta con poner el código del archivo "BCMenu.h" ??

Salu2!!  

MChiz

 jor... pues no lo se si bastaria; probemoslo : ) aunque la idea que tenia era que me pasases todo para intentar compilarlo yo ( siempre y cuando quieras/puedas pasarme el codigo, of course )

Tambien puede ser que el Visual C++ este utilizando el compilador de C, no el de C++. Creo que hay una opcion por el Visual para mirar esto, pero no la se. De la unica forma que se forzar al Visual C++ para que compile en C es hacer que el archivo fuente sea un .C, no un .CPP ( podria ser eso lo que te pasa? )

Ya diras algo : )

talueK!!

Zaelsius

 Si está utilizando MFC no creo que el problema sea que el compilador use C. ¿no? A no ser que haya cambiado la configuración mágicamente.. o hayas metido .c's...

De todas maneras esa opción(cambiar C/C++) en VS.NET está en Proyecto/ (C/C++) / Avanzadas / Compilar como...

Ipis

 
Estoy usando VC++6.0 y MFC y no he modificado ninguna configuración.

De todas formas,he vuelto a la versión anterior de mi proyecto y estoy repitiendo paso a paso,a ver si descubro cuándo se produce el error exactamente..de momento va compilando sin problemas. Ya os iré diciendo cuánto dura la buena racha  :)

Entendería que diera error con un archivo ajeno a VC++ o con alguna versión en C,pero...afxtempl.h no está escrito en C++??No viene incluido en la documentación de VC++??? En ese caso,cómo es posible que dé error de compilación????

Es que no acabo de entenderlo  :blink:  

MChiz

 Lo dije por dar ideas, ya que nadie decia nada ^_^

Me alegro que lo vayas arreglando. Suerte!!

Ipis

 
CitarLo dije por dar ideas, ya que nadie decia nada
Y no sabes cómo te lo agradezco  :D

Si descubro a qué se debe el error ya os lo digo y si no.....pos seguiré dando la lata  :rolleyes:

Gracias por todo.Salu2

Edit: Pero sigo sin entender por qué un archivo que pertenece a la documentación de VC++ me da error.....alguna idea más??  ;)  

MChiz

 Para eso estamos : )

A ver si la gente se anima a dar mas la lata como tu ;bbb Antes aqui habia mas movimiento :´(

Un saludote y ya diras algo!






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.