SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: nostromo en Miércoles 22 de Febrero de 2006, 23:49

Título: Problemas De Ejecución Programa En C++
Publicado por: nostromo en Miércoles 22 de Febrero de 2006, 23:49
Holas;

Estoy realizando un programa con Dev-C++ 4.9.9.0, Sistema Operativo XP Profesional.

Hasta el día de ayer no presentaba problema de ejecución, ahora me el siguiente error, y no se, a que se debe:

Código: Text
  1.  
  2. AppName: aserrio.exe   AppVer: 0.0.0.0   ModName: ntdll.dll
  3. ModVer: 5.1.2600.0   Offset: 000036f9
  4.  
  5.  

Tengo una entrada de datos y por radio button se escoje la salida del resultado, el hecho es que el si apreto 5 ó 6 veces en diferentes radioo button el programa deja de responder, a esto en el Administrador de Tareas parte el programa con Uso de Memoria de 1636 KB, cuando selecciono los diferentes Radiobutton sube a unos 1716 KB, pero cuando llega al quinto selección el Uso de Memoria sube repentinamente a unos 2416 KB en este momento deja de funcionar.

Necesito saber que esta pasando, tengo que cambiar el compilador, si quieren ver el listado de argumentos que utilizo no hay problema.

En los radio button tengo procedimientos de ventana, los cuales consisten en fijar el cursor, en los eventos WM_LBUTTONDOWN cambio el cursor a una que simula que aprieta el radiobutton:

Código: Text
  1.  
  2. LRESULT CALLBACK Radio1Proc(HWND rmc,UINT msj, WPARAM wp,LPARAM lp)
  3. {
  4.     switch(msj)
  5.     {
  6.         case WM_SETCURSOR: SetCursor(lcr); return TRUE;
  7.         case WM_LBUTTONDOWN:
  8.             SetCursor(lcra);
  9.             sf(Rad1);//-->function SetFocus()
  10.             marca(Rad1,Rad2,Rad3,Rad4,Rad5);
  11.             ew(VerVol,TRUE);//->function EnableWindow()
  12.             return TRUE;
  13.         case WM_KEYDOWN:
  14.             if(wp == VK_TAB || wp == 40) sf(Rad2);
  15.             if(wp == 38) sf(Cantidad);
  16.             if(wp == 13) { marca(Rad1,Rad2,Rad3,Rad4,Rad5); ew(VerVol,TRUE); }
  17.             break;
  18.     }
  19.     return CallWindowProc(NRad1Proc,rmc,msj,wp,lp);
  20. }
  21.  
  22.  

En WM_CREATE en el WinProc :

Código: Text
  1.  
  2. Rad1 = CreateWindowEx(0,ctl[3]," m3",str_rad,20,197,45,15,hwnd,(HMENU)0,inst,NULL);
  3. Rad2 = CreateWindowEx(0,ctl[3]," p3",str_rad,20,220,41,15,hwnd,(HMENU)0,inst,NULL);
  4. Rad3 = CreateWindowEx(0,ctl[3]," pp",str_rad,20,245,40,15,hwnd,(HMENU)0,inst,NULL);
  5. Rad4 = CreateWindowEx(0,ctl[3]," P'm",str_rad,20,270,50,15,hwnd,(HMENU)0,inst,NULL);
  6. Rad5 = CreateWindowEx(0,ctl[3]," P''m",str_rad,20,295,52,15,hwnd,(HMENU)0,inst,NULL);
  7.  
  8. NRad1Proc = (WNDPROC)SetWindowLong(Rad1,GWL_WNDPROC,(LONG)Radio1Proc);
  9. ProcRadio1 = (FARPROC)GetWindowLong(Rad1,GWL_WNDPROC);
  10.  
  11.  

Si necesitan más datos pidan...

Nos vemos.
Título: Re: Problemas De Ejecución Programa En C++
Publicado por: Eternal Idol en Jueves 23 de Febrero de 2006, 08:40
¿Lo depuraste? Seguro que te sera mucho mas facil siguiendo la ejecucion del programa que leyendo el codigo.
Título: Re: Problemas De Ejecución Programa En C++
Publicado por: nostromo en Jueves 23 de Febrero de 2006, 21:56
Holas:

Pasa que llevo una bitácora de los códigos que ingreso tal día, antes del fallo no habia colocado lo siguiente:

free()

En el evento click del static o bien; WM_LBUTTONDOWN, capturo 4 edit y los coloco en una variable strEsp, etc....:

GetWindowText(Esp,strEsp,10);

Al final de los calculos y el correspodiente resultado libero los string que capturo, el problema era ese, los coloque o los emplee muy mal.

Ahora funciona muy bien y en el administrador de tareas la cantidad de memoria que ocupa esta estable, antes subia de forma alarmante. Hasta que quedaba colgado mi programa.

En cuanto a la depuración no funciona muy bien y por flojera no actualizo a la versión 5 del Dev-C++.

Nos vemos.