Erro ao fechar a aplicação
-
Não sei se meu problema está relacionado ao código ou ao SO....
Eu fiz uma aplicação em Qt e gerei um instalador que funciona perfeitamente, testei no windows 8 e não deu erro em nenhum momento, testei em uma máquina virtual com windows xp e a aplicação abre e funciona normalmente, porém sempre que eu fecho ela aparece aquela mensagem para gerar relatorio de erro do windows, dizendo que a aplicação não foi encerrada corretamente e etc. Isso ocorre sempre que eu fecho a aplicação no windows xp, no windows 8 não deu este problema.
Já testei em 2 máquinas virtuais e o problema persiste, alguém sabe o que pode ser?Grato
-
Quando a mensagem aparecer, pede pra ver os detalhes. De repente o erro nem é no seu exe, mas em alguma dll que ele está usando, por exemplo. Daí essa tela de detalhes deve mostrar o nome dll, se for o caso. Se o problema for seu exe mesmo, você está usando threads ou alguma coisa que possa estar pendente quando o programa é fechado?
-
Eu olhei os detalhes e tem muita coisa lá...não consegui identificar a fonte do problema ali, e sim, meu projeto usa threads para leitura de dados via USB.
O que me deixa mais confuso é o fato do problema só aparecer no windows xp, no 7 e no 8 funciona redondinho... -
Pois é, mas confere aí se você está encerrando certinho as threads quando o programa é fechado.
-
Vou conferir, estava revendo o relatório de erros do windows....ele cita todas as dll's.....vou ver o que faço a respeito disto também, obrigado pela ajuda.
-
Olá,
Você está protegendo corretamente as variaveis utilizadas na thread? Antes de fechar o programa você está aguardando(join()) a thread? dentro da thread você usa delete?
Um erro como esse está relacionado a falha no gerenciamento de memória.
Mais por que ocorre em um e não em outro SO? Isso ocorre principalmente por que a memória pode estourar para um segmento utilizado pelo seu programa ("não geraria erro", pois já é do seu programa), ou estourar para fora (daí sim gera o segfault).