Se il programma originale stia funzionando bene, quindi che è buono. Potreste lasciare solo abbastanza buon, ma ancora penso che dovreste cambiare la vostra logica del filetto per essere più orientato oggettivamente come ho accennato. Così com'è, è duro da prendere come le cose funzionano dall'esame del vostro codice: avete UI misto con funzionalità a livello più basso. Un codice categoria del filetto modularizza più meglio tutto così tanto e porta a lettura, quindi a ricerca degli errori più facili se qualcosa deve esaminare una data ulteriore.
Ma hey, è il vostro progetto…:)
>> avete di idea perché, quando è terminato scattando il tasto “di x„, il programma di messa a punto indica le perdite di memoria?
Vedo quanto segue dopo che avvio il programma di messa a punto, premo il pulsante di avvio, quindi vicino il app:
Perdite di memoria rilevate!
Facendo uscire gli oggetti - >
{542} blocco normale a 0x00DB16A0, 16 byte di lunghezza.
Dati:
<>bsp;
 
;  
;
 
;  
; > A8 15 CD CD CD CD CD CD CD CD CD CD CD CD di DB 00
{541} blocco normale a 0x0003FBE8, 32 byte di lunghezza.
Dati:
<>bsp;
 
;  
;
 
;  
; > A0 16 DB 00 00 00 00 00 00 00 00 00 00 00 00 00
{526} blocco normale a 0x00DB3FA0, 28 byte di lunghezza.
Dati:
<>bsp;
 
;  
;
 
;  
; > 00 00 00 00 CD CD CD CD CD CD CD CD E8 FB 03 00
Deposito dell'oggetto completo.
Così aggiungo quanto segue a CWinThreadTestApp:: InitInstance ():
_CrtSetBreakAlloc (542);
_CrtSetBreakAlloc (541);
_CrtSetBreakAlloc (526);
Ora in cui il programma di messa a punto è avviato, immediatamente ottengo una rottura di eliminazione degli errori sulla linea:
OpRequestQ = (queue*
)
nuova
coda
; //
[
MAX_CONCURRENT_POLLS+1];
così, aggiungere
se cancellazione OpRequestQ (di OpRequestQ);
al vostro distruttore:) il _CrtSetBreakAlloc realmente è una grande funzione per fare il vasto uso di se necessario:)