|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6259
|
[C] Uscita immediata
Ciao, sono ancora alle prese col programmone C (non mfc) che sto tentando di modificare.
Sono incriccato sull'uscita, perchè quando il programma riceve un comando di close, si chiude ma genera l'errore generico di windows ("Ha esguito un op.non valida....bla bla) , ma solo in runtime, in debug funzia perfettamente. Io vorrei fare una DestroyWindow(hwnd_finestra) e stop, fine della trasmissione, ma non ci riesco. C'è un comando che fa fermare completamente il run del programma ? (così magari mi evito l'errore!)
__________________
AMD Ryzen 5 7600X - Dissipatore Thermalright Assassin King 120SE - RAM Kingston Fury Beast 2x16Gb DDR5 CL30 @ 6000 - Motherboard ASROCK B650 Pro RS - NVME Kingston KC3000 2Tb - PSU FSP Hydro PRO 600w - Win 11 PRO |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Dovremmo vedere il tuo codice per capire cosa causi l'eccezione. Ci sono molti metodi (corretti) per chiudere un'applicazione...
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6259
|
Lo so.
Sarebbe il metodo più giusto e corretto, ma QUESTO codice fa impressione....io purtroppo non sono un programmatore C "vero", ma per necessità della mia ditta ho dovuto metter mano a sto mostro che è stato fatto anni e anni fa da un tizio che neanche era italiano (e commenti al codice manco sapeva cos'erano, maledetto lui). Purtroppo in questo modo mi è difficile reperire info e chiedere aiuto, devo andare a 'naso' e debugging (uso il VC++ 6 per farlo) a manetta (breakpoints come se piovesse, per capire cosa fa il codice).
__________________
AMD Ryzen 5 7600X - Dissipatore Thermalright Assassin King 120SE - RAM Kingston Fury Beast 2x16Gb DDR5 CL30 @ 6000 - Motherboard ASROCK B650 Pro RS - NVME Kingston KC3000 2Tb - PSU FSP Hydro PRO 600w - Win 11 PRO |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Allora non posso fare altro che rimandarti all'esempio MSDN della funzione DestroyWindow e suggerirti di acquistare un buon libro sulla programmazione Windows, altrimenti rischi di aggiungere molte forchettate di spaghetti al pastrocchio che stai cercando di modificare.
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6259
|
Ehh...lo so...mannaggia.
Cmq la cosa più assurda è che se compilo in release, l'errore in uscita c'è, se compilo ed eseguo in debug, l'errore non si presenta e il prog si chiude regolarmente !!! Una cosa che mi dà fastidio nel debug, è che all'avvio mi dà un errore "Abnormal block termination - Annulla - Riprova - Ignora" e non capisco a cosa sia dovuto...(visto che poi il programma va ) ![]()
__________________
AMD Ryzen 5 7600X - Dissipatore Thermalright Assassin King 120SE - RAM Kingston Fury Beast 2x16Gb DDR5 CL30 @ 6000 - Motherboard ASROCK B650 Pro RS - NVME Kingston KC3000 2Tb - PSU FSP Hydro PRO 600w - Win 11 PRO |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
Cerca di circoscrivere la porzione che crea problemi con dei log su file, memorizzi su file l'esito di ogni chiamata. |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6259
|
Di preciso dice "DAMAGE After normal block (#401) - Abort - Retry - Ignore"
Maremma impestata. ![]()
__________________
AMD Ryzen 5 7600X - Dissipatore Thermalright Assassin King 120SE - RAM Kingston Fury Beast 2x16Gb DDR5 CL30 @ 6000 - Motherboard ASROCK B650 Pro RS - NVME Kingston KC3000 2Tb - PSU FSP Hydro PRO 600w - Win 11 PRO |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quel problema solitamente è causato da una errata gestione della memoria dinamica o dei puntatori. Senza vedere TUTTO il sorgente è impossibile risalire alle cause.
Presta attenzione alle allocazioni ed alle deallocazioni di memoria, cerca di individuare eventuali scritture oltre i limiti consentiti. Ci sono degli strumenti di terze parti che automatizzano l'individuazione di errori e memory leaks, purtroppo spesso non sono a "buon mercato". ![]() |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6259
|
Gestione della memoria eh ?
Ho cercato un pò tutti i "malloc" che ho in avvio e ho aggiunto un "+1" al "size"...beh, l'errore è sparito! Non è pulita la soluzione, ma per ora mi leva uno dei 'sassi' che ho nelle scarpe. E colgo l'occasione per ringraziare te e tutti gli altri programmatori "seri" che mi danno consigli e aiuti qui su HWU. Grazie ragazzi! ![]()
__________________
AMD Ryzen 5 7600X - Dissipatore Thermalright Assassin King 120SE - RAM Kingston Fury Beast 2x16Gb DDR5 CL30 @ 6000 - Motherboard ASROCK B650 Pro RS - NVME Kingston KC3000 2Tb - PSU FSP Hydro PRO 600w - Win 11 PRO |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:20.