Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





En Visual C++ .net...

Iniciado por Sergio, 01 de Enero de 1970, 01:00:00 AM

« anterior - próximo »

Sergio

                                A ver, acabo de pillar el Visual Studio .net y compilando un programa que funciona sin problemas en la version 6.0 del compilador me da un "warning". El codigo es este:

void CompruebaMensajes(void)
{
   MSG msg;

   while(msg.message != WM_QUIT)
   {
      //Si pulsa ESC manda un mensaje WM_QUIT
      if(KeyDown(VK_ESCAPE) != NULL)
         PostQuitMessage(0);

      //Si hay algun mensaje lo traduce y lo despacha...
      if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
      {
         TranslateMessage(&msg);
         DispatchMessage(&msg);
      }else{   //...si no hay ninguno renderiza.
         Render();
      }
   }
}

Se para en la linea que dice:
   while(msg.message != WM_QUIT)
y me dice que 'msg' no ha sido definido, puedo continuar, pero es muy molesto tener que darle a 'continue' cada vez que compilas por una tonteria.

Alguien sabe porque es??

un saludo!!                                
here are only 10 types of people: those who understand binary and those who don't

Degiik

                                no definido? si no esta definido no deberia dar un warnig, daria un error, al menos en el VC++6.0. Además en el windows.h ya te define los mensages... ..?¿?¿ puedes copiar litaralemnte el error ?.

                               
egiik: h-O-5 hoja/ingestión 100mo Vida suspendida ( 1 día )

CordayUK

                                no te dice en vez de "no definido", "no inicializado"????                                

Sergio

                               
Citar
El 2002-09-22 14:40, Degiik escribió:
no definido? si no esta definido no deberia dar un warnig, daria un error, al menos en el VC++6.0. Además en el windows.h ya te define los mensages... ..?¿?¿ puedes copiar litaralemnte el error ?.

Que el error lo deberia dar si no esta DECLARADO en vez de definido, no??
Porque como se DEFINE una variable??

Bueno, el error es:
"Run-Time Check Failure #3 - The variable 'msg' is being used without being defined."

Por cierto, en WindowsXP hay alguna manera de evitar que te pregunte el usuario con el que te deseas identificar cada vez que se inicia el SO??
un saludo!

[ Este Mensaje fue editado por: Sergio el 2002-09-22 15:38 ]                                
here are only 10 types of people: those who understand binary and those who don't

Daventry

                                Lo de que el XP no te pida el usuario se soluciona así: dale a Inicio->Ejecutar y pon control userpasswords2. Ahora desmarca la casilla esa q dice "Los usuarios deben escribir su nombre y contraseña para usar el equipo". Cuando pulses Aceptar te pedirá que metas el nombre del usuario que abrirá la sesión por defecto y su contraseña.

Bye

                               
img src='http://www.danasoft.com/sig/vipersig.jpg' border='0' alt='user posted image'>

Sergio

                                gracias:)
una cosa menos que solucionar.

saludos!!                                
here are only 10 types of people: those who understand binary and those who don't

CordayUK

                                la primera vez que te metes en el bucle, cuanto vale msg??? pues puede ser cualquier cosa... :sonriendo: msg no esta inicializada, no tiene ningun valor hasta que te has metido en el bucle. si fuera un do {} while en vez de un while {} seria perfecto, pero en c solo se puede hacer un while.

pon esto ANTES del bucle y no deberia darte el warning...



memset (msg, 0, sizeof (MSG));


                               

CordayUK

                                ups, es un puntero a la estructura.... corrigo:



memset (&msg, 0, sizeof (MSG));
                               

Sergio

                                Funciona perfectamente. Tambien he probado a usar "do...while" y tambien funciona. Muchas gracias por la ayuda.

Un saludo!!                                
here are only 10 types of people: those who understand binary and those who don't

CordayUK

                                ok. me alegro !

he metido la gamba... en C claro que se puede hacer do.. while.  O:)
solo que yo solo lo usaba con pascal y no pensaba que en c no habia, de hecho nunca he visto a la gente usar do..while en c.

solo eso. salu2                                






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.