Ir para conteúdo
Fórum Script Brasil
  • 0

Encerrar Programa C++


JeanUtf

Pergunta

Olá!

Desenvolvo com c++builder 6. Meu problema é o seguinte:

Tenho um formPrincipal e uma thread. Dentro dessa Thread em uma situação especial preciso fechar a aplicação. Porém chamando da thread Application->Terminate(), não funciona. Já tentei exit(0) também mas dá exceção.Tentei chamar um método do FormPrincipal e de lá chamar terminate mas também não funcionou.

Alguém tem alguma solução?

Obrigado.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Olá!

Desenvolvo com c++builder 6. Meu problema é o seguinte:

Tenho um formPrincipal e uma thread. Dentro dessa Thread em uma situação especial preciso fechar a aplicação. Porém chamando da thread Application->Terminate(), não funciona. Já tentei exit(0) também mas dá exceção.Tentei chamar um método do FormPrincipal e de lá chamar terminate mas também não funcionou.

Alguém tem alguma solução?

Obrigado.

Sera que com exit(1)

ele não encerra??

Link para o comentário
Compartilhar em outros sites

  • 0

Bom....em todo caso segue um codigo pra voce da uma olhada:

class MyThread: public TThread
{
    private:
        int iCount;

    public:

    MyThread():TThread(true)
    {
        iCount = 0;
    }

    void __fastcall Execute(void)
    {
        while(!Terminated  && iCount  >= 0)
        {
            iCount ++;
            Sleep(100);
            if(iCount  == 100)
            {
                Terminate();
            }
        }
    }

    int getCount()
    {
        return iCount;
    }

    bool finished()
    {
        return Terminated;
    }
};


MyThread *pThread;

.....

void __fastcall TForm1::FormCreate(TObject *Sender)
{
    pThread = new MyThread();
    pThread->OnTerminate = OnTerminate;
    pThread->Resume();
}

void __fastcall TForm1::OnTerminate(TObject *Sender)
{
    pThread = NULL;
    Application->Terminate();
}

o que voce precisa fazer é criar uma funcao pro evento OnTerminate no teu programa principal

e atribuir esta funcao para a funcao do OnTerminate da thread

pThread->OnTerminate = OnTerminate;

e nela voce chama o Terminate da aplicacao :D!!

Abrasss

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...