[C con Clase] FW: Ayuda: Como declaro variables en un proyecto?

D1e6o! diegogeid en gmail.com
Mar Feb 20 23:09:38 CET 2007


Muchísimas Gracias..!! Recién lo veo. Es que estoy por rendir y entre andar
apurado y varios correos se me pasó esto. Disculpen.. je estaba ansioso
esperando alguna respuesta, y ya la habían dado.. que mal..! (lo de gettimer
es porque estaba modificanco algunas cosas y quedó de otra prueba que hice
del ejemplo de QueryPerformanceCounter, pero fué solo un error mío al copiar
y pegar me equivoqué de archivo fuente. Era TiempoActual... Gracias por
hacermelo saber también!!!)

Me sirvió de mucho su ayuda amigos!!.. El problema era como bien dijo steven
que mezclaba archivos cpp con c, y como no utlilizo clases ni nada por el
estilo renombré a main.c y funcionó, gracias a ustedes tengo el proyecto
subdividido en varios archivos y funciona como debe. Muchas gracias!!

La lista ya me funciona a la perfección... Y realmente es muy completa y me
ayuda mucho. Saludos a todos! Cuenten conmigo por más mínimo que sea si
puedo los ayudo....!

El día 16/02/07, Kenshin Himura <sintahimura en msn.com> escribió:
>
>
>
>
>
> ------------------------------
> > To: cconclase en listas.conclase.net
> > From: diegogeid en gmail.com
> > Date: Thu, 15 Feb 2007 23:37:46 -0600
> > Subject: Re: [C con Clase] Ayuda: Como declaro variables en un proyecto?
> >
> > El pasado 2007-02-15 13:37:47, D1e6o! escribió:
> >
> > Muchas gracias amigos.. realmente me sirvio.. pero no entendí del todo
> esto.
> >
> > Ahora tengo los mismos problemas con las funciones... me dice linker
> error: undefined reference to TiempoActual. Me sucede lo mismo... no se como
> declarar las funciones (lo mismo que antes pero no con variables)...
> > Muchas gracias de nuevo por leer y responder realmente me sirvió..!!
> Saludos..!
> >
> > (no esta funcionando la lista, no? no me llegan mensajes pero al meterme
> en la web de elistas me dice que ya estoy suscripto... y no esta ni en spam
> x las dudas)
> >
> >
> > D> El pasado 2007-02-14 04:23:52, Steven Davidson escribió:
> > D> Muchísimas gracias!!!! Es exactamente eso lo que buscaba... Y me
> sirvió por completo. REALMENTE GRACIAS..! SALUDOS!
> > D> SD> Hola Diego,
> > D> SD> El pasado 2007-02-14 03:27:29, D1e6o! escribió:
> > D> SD> D> Muchas gracias a ambos!!!
> > D> SD> D> No lo estoy haciendo bien... je. Lo que hice es siguiendo sus
> mensajes:
> > D> SD> D> En tempor.c
> > D> SD> D> #include <windows.h>
> > D> SD> D> // Ahora acá esta el problema. No se como declarar freq para
> poder utilizarla tanto en main como en tempor y que esta tenga el mismo
> valor, no que cree una variable para cada modulo
> > D> SD> D> DWORD TiempoActual(void)
> > D> SD> D> {
> > D> SD> D> LARGE_INTEGER cuenta;
> > D> SD> D> QueryPerformanceCounter(&cuenta);//retorna el valor en ticks
> > D> SD> D> //paso a milisegundos y lo retorno
> > D> SD> D> return ((DWORD) ((cuenta.QuadPart*1000 ) / freq.QuadPart));
> > D> SD> D> }
> > D> SD> D>
> > D> SD> D> char InitTimer(void)
> > D> SD> D> {
> > D> SD> D> if (!QueryPerformanceFrequency(&freq)) return(0);
> > D> SD> D> }
> > D> SD> D> En decla.h
> > D> SD> D> #ifndef _DECLA
> > D> SD> D> #define _DECLA
> > D> SD> D> DWORD GetTimer(void);
> > D> SD> D> char InitTimer(void);
> > D> SD> D> #endif
> > D> SD> D> En main.cpp
> > D> SD> D> ...
> > D> SD> D> #include "decla.h"
> > D> SD> D> ...
> > D> SD> D> LARGE_INTEGER freq;
> > D> SD> D> Lo que no se es como declarar LARGE_INTEGER freq en tempor.cpara que sea utlilizada con el mismo valor que en
> main.cpp y la pueda utilizar tanto en rutinas de main como de temp, porque
> si la declaro en decla.h e incluyo decla.h en tempo.c ¿no tiene un valor
> distinto para cada modulo?
> > D> SD> D> Porque los errores son:
> > D> SD> D> In function `TiempoActual':
> > D> SD> D> freq undeclared (first use in this function)
> > D> SD> D> (Each undeclared identifier is reported only once for each
> function it appears in.)
> > D> SD> D> In function `InitTimer':
> > D> SD> D> freq undeclared (first use in this function)
> > D> SD> D> Por otro lado si vuelvo a declarar freq en tempo (cosa que
> creo que está mal porque tendría un valor en ese modulo y otro en otro) me
> da otro error: [Linker error] undefined reference to `TiempoActual()'
> > D> SD> D> Cual sería la declaración correcta de variables en los
> distintos módulos? Muchas Gracias...! (siempre esquivo usar mas de un
> archivo fuente porque tengo esos problemas.. :( )
> > D> SD> El problema es con el enlazador, como ya has notado. Lo que
> tienes que hacer es indicar al enlazador que tal variable es común y que
> será compartida. Para esto, tienes que indicar 'extern' como modificador
> para la declaración. Esto es,
> > D> SD> // decla.c
> > D> SD> extern LARGE_INTEGER freq;
> > D> SD> // tempor.c
> > D> SD> extern LARGE_INTEGER freq;
> > D> SD> // main.c
> > D> SD> LARGE_INTEGER freq; // Definimos aquí la variable
> > D> SD> Ahora la variable 'freq' existe en "main.c", mientras que para
> los otros ficheros fuentes, la variable realmente es una referencia para el
> enlazador. En otras palabras, sólo existe una sola variable 'freq'.
> > D> SD> Espero que esto te sirva.
> > D> SD> Steven
> > D> SD> _______________________________________________
> > D> SD> Lista de correo Cconclase Cconclase en listas.conclase.net
> > D> SD>
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> > D> SD> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
> > D> _______________________________________________
> > D> Lista de correo Cconclase Cconclase en listas.conclase.net
> > D>
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> > D> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
> > _______________________________________________
> > Lista de correo Cconclase Cconclase en listas.conclase.net
> >
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> > Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
> ------------------------------
> Llama a tus amigos de PC a PC: ¡Es GRATIS! Pruébalo<http://get.live.com/messenger/overview>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20070220/7f0d299f/attachment.html>


Más información sobre la lista de distribución Cconclase