Se o programa original está trabalhando bem, a seguir que é bom. Você poderia deixar bom bastante sozinho, mas eu ainda penso que você deve mudar sua lógica da linha para estar mais orientado ao objecto como eu mencionei. Assim, é duro pegarar como as coisas trabalham de olhar seu código: você tem UI misturado com a funcionalidade lower level. Uma classe da linha modularizes tudo tanto melhor e fá-lo para uma leitura, daqui uma eliminação de erros mais fáceis se algo precisar de olhar em um outro dia.
Mas hey, é seu projeto…:)
>> você tem alguma idéia porque, quando é terminado estalando a tecla de “x”, o depurador de programas indica escapes de memória?
Eu ver o seguinte depois que eu ligo o depurador de programas, pressiono a tecla "Iniciar Cópias", a seguir próximo o app:
Escapes de memória detetados!
Despejando objetos - >
{542} bloco normal em 0x00DB16A0, 16 bytes por muito tempo.
Dados:
<>bsp;
 
;  
;
 
;  
; > A8 15 CD CD CD CD CD CD CD CD CD CD CD CD do DB 00
{541} bloco normal em 0x0003FBE8, 32 bytes por muito tempo.
Dados:
<>bsp;
 
;  
;
 
;  
; > A0 16 DB 00 00 00 00 00 00 00 00 00 00 00 00 00
{526} bloco normal em 0x00DB3FA0, 28 bytes por muito tempo.
Dados:
<>bsp;
 
;  
;
 
;  
; > 00 00 00 00 CD CD CD CD CD CD CD CD E8 FB 03 00
Descarga do objeto completa.
Assim eu adiciono o seguinte a CWinThreadTestApp:: InitInstance ():
_CrtSetBreakAlloc (542);
_CrtSetBreakAlloc (541);
_CrtSetBreakAlloc (526);
Agora em que o depurador de programas é ligado, eu começ imediatamente uma ruptura da eliminação de erros na linha:
OpRequestQ = (queue*
)
fila
nova
; //
[
MAX_CONCURRENT_POLLS+1];
Assim, adicionar
se supressão OpRequestQ (de OpRequestQ);
a seu destruidor:) o _CrtSetBreakAlloc é realmente uma grande função para fazer o uso extensivo de quando necessária:)