Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Crash en la funcion showWindow

Estas en el tema de Crash en la funcion showWindow en el foro de C/C++ en Foros del Web. Pues el problema es que tengo una clase donde creo una ventana con : @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código C++: Ver original RegisterClassEx ( & wincl ) ...
  #1 (permalink)  
Antiguo 21/10/2011, 21:25
Avatar de shujidan  
Fecha de Ingreso: abril-2011
Mensajes: 121
Antigüedad: 13 años
Puntos: 5
Crash en la funcion showWindow

Pues el problema es que tengo una clase donde creo una ventana con :

Código C++:
Ver original
  1. RegisterClassEx(&wincl)
  2. hwnd = CreateWindowEx(...

esta ventana la quiero mostrar desde otra clase con

Código C++:
Ver original
  1. int App::agregar(Ventana *ventana) {
  2.     this->hwnd = ventana->hwnd;
  3. }
  4.  
  5. ShowWindow(hwnd, SW_SHOWDEFAULT);

La ventana se muestra pero es la ultima instruccion que se ejecuta antes de crashear
esta clase es la que procesa los mensajes

el problema es que cuando ejecuto el programa este crashea y no sé porqué, no hay errores en la compilación.
Se me ocurre que cuando creo la ventana esta no encuentra al WindowProcedure asociado a la hora de crear la estructura WNDCLASSEX, pero no estoy seguro.
Si alguien puede ayudarme se lo agradezco mucho.



EDIT: El error venía de un mensaje en

Código C++:
Ver original
  1. case WM_SIZE:
  2.     height = HIWORD(lParam);
  3.     width = LOWORD(lParam);
  4.     break;

Por alguna razón me tira el error en tiempo de ejecución, ya lo había hecho antes pero hoy me dió problemas por alguna razón.
el error es al intentar acceder a cualquier dato definido en la clase desde mi windowprocedure ..., para encontrar este error se me ocurrió que ShowWindow buscaba algun mensaje antes de mostrarse, como por ejemplo WM_CREATE, así que comenté todo el código de los mensajes y el programa se ejecutó sin problemas con el inconveniente de que no me permite usar más las variables de la clase , están definidas como public, ni siquiera puedo acceder al manejador de la ventana sin pasarselo por parámetro porque me tira el error.

Esto es comprensible si quiero acceder a las variables por el WindowsProcedure estático, pero este llama a otra función donde manejo los mensajes para poder acceder a la información de la clase, bueno, esto desde que me lanza el error en tiempo de ejecución.

Última edición por shujidan; 22/10/2011 a las 08:57
  #2 (permalink)  
Antiguo 22/10/2011, 09:04
Avatar de shujidan  
Fecha de Ingreso: abril-2011
Mensajes: 121
Antigüedad: 13 años
Puntos: 5
Respuesta: Crash en la funcion showWindow

Ya lo pude solucionar, era el error más común de la encapsulación del WinMain, el WindowProcedure estático no podía acceder a mi WindowProcedure de la clase porque no habia inicializado un apuntador que los relaciona, por lo tanto éste intentaba usar el windowprocedure del apuntador en NULL.

Etiquetas: crash, funcion, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:22.