Als het oorspronkelijke programma goed werkt, dan is dat goed. U kon goede genoeg alleen verlaten, maar ik denk nog dat u uw draadlogica zou moeten veranderen om meer voorwerp - te zijn georiënteerd zoals ik heb vermeld. Aangezien het zich bevindt, is het moeilijk om op te nemen hoe de dingen van het bekijken uw code werken: u hebt UI met lagere niveaufunctionaliteit die wordt gemengd. Een draadklasse modulariseert alles zo veel beter en maakt voor gemakkelijkere lezing, vandaar zuiverend als iets het bekijken zou moeten vergen een recentere datum.
Maar hey, is het uw project…:)
>> hebt u om het even welk idee waarom, wanneer het door de „x“ knoop wordt geëindigde te klikken, wijst debugger geheugen op lekken?
Ik zie het volgende nadat ik debugger, druk de starter begin, sluit dan app:
Ontdekte geheugenlekken!
Dumpende voorwerpen - >
{542} normaal blok bij 0x00DB16A0, 16 lange bytes.
Gegevens:
<>bsp;
 
;  
;
 
;  
; > A8 15 CD van OB 00 CD CD CD CD CD CD CD CD CD CD CD
{541} normaal blok bij 0x0003FBE8, 32 lange bytes.
Gegevens:
<>bsp;
 
;  
;
 
;  
; > A0 16 OB 00 00 00 00 00 00 00 00 00 00 00 00 00
{526} normaal blok bij 0x00DB3FA0, 28 lange bytes.
Gegevens:
<>bsp;
 
;  
;
 
;  
; > 00 00 00 00 CD CD CD CD CD CD CD CD E8 FB 03 00
Volledige de stortplaats van objecten.
Zo voeg ik het volgende aan CWinThreadTestApp toe:: InitInstance ():
_CrtSetBreakAlloc (542);
_CrtSetBreakAlloc (541);
_CrtSetBreakAlloc (526);
Nu wanneer debugger is begonnen, word ik onmiddellijk zuiver onderbreking op de lijn:
OpRequestQ = (queue*
)
nieuwe
rij
; //
[
MAX_CONCURRENT_POLLS+1];
zo, voeg toe
als (OpRequestQ) schrapping OpRequestQ;
aan uw vuilverbrandingsoven:) _CrtSetBreakAlloc werkelijk is een grote functie om uitgebreid gebruik van wanneer noodzakelijk te maken:)