Pergunta

Eu executo meu programa em DebugMode e saio dele fechando o formulário principal.

Na janela de saída, posso ver a seguinte mensagem:

Uninit : Still Alive 1The program "[1432] App1.exe: Managed (v4.0.30319)" was ended with code 0 (0x0).

Eu me pergunto o que o "Uninit:Ainda vivo 1" significa.

Alguém sabe???Sempre fico com muito medo de que algo inesperado aconteça em algum momento, e a mensagem "Still Alive" não me parece muito promissora.

Obrigado pela ajuda!

Foi útil?

Solução

É uma mensagem de diagnóstico que foi gerada com SaídaDebugString().Ele está presente em uma das DLLs das quais você depende.O significado exato requer interpretação, mas “Uninit” é a abreviação de “Uninitialize”, o tipo de coisa que acontece quando uma DLL é descarregada.E "Still Alive 1" provavelmente significaria que o programador da DLL está irritado por você não ter desligado corretamente o componente dele antes de puxar o tapete.

A mensagem está faltando uma quebra de linha (" "), um erro bastante comum que os programadores cometem quando usam OutputDebugString.

Duas maneiras básicas de encontrar a DLL que faz isso.A primeira é ativar a depuração não gerenciada com Projeto + Propriedades, guia Depurar, marque a caixa de seleção "Ativar depuração de código nativo".A notificação de descarregamento da DLL deve estar próxima da mensagem de diagnóstico.

Mais confiável é usar o Process Explorer da SysInternals.Selecione seu processo e pressione Ctrl+D para listar as DLLs que ele carregou.Dada a qualidade da mensagem, você provavelmente pode ignorar aquelas que possuem direitos autorais da Microsoft.Clique com o botão direito nas DLLs, uma por uma, e observe a guia "Strings" para ver as strings dentro da DLL.Depois de encontrá-lo, você deverá saber quem é o proprietário desse código pelo nome da DLL.Pergunte-lhes como desligar corretamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top