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!!!)
<br><br>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!!
<br><br>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....!<br><br><div><span class="gmail_quote">El día 16/02/07, 
<b class="gmail_sendername">Kenshin Himura</b> <<a href="mailto:sintahimura@msn.com">sintahimura@msn.com</a>> escribió:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">




<div><br><br><br><br>
<hr>
> To: <a href="mailto:cconclase@listas.conclase.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">cconclase@listas.conclase.net</a><br>> From: <a href="mailto:diegogeid@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
diegogeid@gmail.com</a><br>> Date: Thu, 15 Feb 2007 23:37:46 -0600<br>> Subject: Re: [C con Clase] Ayuda: Como declaro variables en un proyecto?<span class="q"><br>> <br>> El pasado 2007-02-15 13:37:47, D1e6o! escribió:
<br>> <br></span><span class="q">> Muchas gracias amigos.. realmente me sirvio.. pero no entendí del todo esto. <br>> <br></span><span class="q">> 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)...
<br></span><span class="q">> Muchas gracias de nuevo por leer y responder realmente me sirvió..!! Saludos..!<br>> <br></span><span class="q">> (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)
<br>> <br>> <br></span><div><span class="e" id="q_110ccae2bfb2f3f7_6">> D> El pasado 2007-02-14 04:23:52, Steven Davidson escribió:<br>> D> Muchísimas gracias!!!! Es exactamente eso lo que buscaba... Y me sirvió por completo. REALMENTE GRACIAS..! SALUDOS!
<br>> D> SD> Hola Diego,<br>> D> SD> El pasado 2007-02-14 03:27:29, D1e6o! escribió:<br>> D> SD> D> Muchas gracias a ambos!!!<br>> D> SD> D> No lo estoy haciendo bien... je. Lo que hice es siguiendo sus mensajes:
<br>> D> SD> D> En tempor.c<br>> D> SD> D> #include <windows.h><br>> 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
<br>> D> SD> D> DWORD TiempoActual(void)<br>> D> SD> D> {<br>> D> SD> D> LARGE_INTEGER cuenta;<br>> D> SD> D> QueryPerformanceCounter(&cuenta);//retorna el valor en ticks
<br>> D> SD> D> //paso a milisegundos y lo retorno<br>> D> SD> D> return ((DWORD) ((cuenta.QuadPart*1000 ) / freq.QuadPart));<br>> D> SD> D> }<br>> D> SD> D> <br>> D> SD> D> char InitTimer(void)
<br>> D> SD> D> {<br>> D> SD> D> if (!QueryPerformanceFrequency(&freq)) return(0);<br>> D> SD> D> }<br>> D> SD> D> En decla.h<br>> D> SD> D> #ifndef _DECLA<br>
> D> SD> D> #define _DECLA<br>> D> SD> D> DWORD GetTimer(void);<br>> D> SD> D> char InitTimer(void);<br>> D> SD> D> #endif<br>> D> SD> D> En main.cpp<br>> D> SD> D> ...
<br>> D> SD> D> #include "decla.h"<br>> D> SD> D> ...<br>> D> SD> D> LARGE_INTEGER freq;<br>> D> SD> D> Lo que no se es como declarar LARGE_INTEGER freq en tempor.c
 para 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?
<br>> D> SD> D> Porque los errores son:<br>> D> SD> D> In function `TiempoActual':<br>> D> SD> D> freq undeclared (first use in this function)<br>> D> SD> D> (Each undeclared identifier is reported only once for each function it appears in.)
<br>> D> SD> D> In function `InitTimer':<br>> D> SD> D> freq undeclared (first use in this function)<br>> 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()'
<br>> 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.. :( )<br>> 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,
<br>> D> SD> // decla.c<br>> D> SD> extern LARGE_INTEGER freq;<br>> D> SD> // tempor.c<br>> D> SD> extern LARGE_INTEGER freq;<br>> D> SD> // main.c<br>> D> SD> LARGE_INTEGER freq; // Definimos aquí la variable
<br>> 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'.
<br>> D> SD> Espero que esto te sirva.<br>> D> SD> Steven<br>> D> SD> _______________________________________________<br></span></div>> D> SD> Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
Cconclase@listas.conclase.net</a><br>> D> SD> <a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
</a><br>> D> SD> Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://listas.conclase.net/index.php?gid=2&mnu=FAQ
</a><br>> D> _______________________________________________<br>> D> Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
Cconclase@listas.conclase.net</a><br>> D> <a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
</a><br>> D> Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><span class="q">
<br>> _______________________________________________<br>> Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Cconclase@listas.conclase.net
</a><br>> <a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
</a><br>> Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br><br>
</span><hr>Llama a tus amigos de PC a PC: ¡Es GRATIS! <a href="http://get.live.com/messenger/overview" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Pruébalo</a></div>
<br>_______________________________________________<br>Lista de correo Cconclase <a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a onclick="return top.js.OpenExtLink(window,event,this)" href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
</a><br>Bajas: <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br></blockquote>
</div><br>