Crie um arquivo exe para executar o programa. Como criar um .exe a partir de um arquivo Python3 no Windows

EXE é um formato sem o qual nenhum software pode prescindir. Ele executa todos os processos de inicialização ou instalação de programas. Pode ser um aplicativo completo ou parte dele.

Existem duas opções para criar um arquivo EXE. A primeira é a utilização de ambientes de programação, e a segunda é a utilização de instaladores especiais, com a ajuda dos quais são criados vários “repacks” e pacotes que podem ser instalados com um clique. Abaixo veremos ambas as opções usando exemplos.

Método 1: Comunidade do Visual Studio

Considere o processo de criação de um programa simples baseado em uma linguagem de programação "Visual C++" e sua compilação em Estúdio visual Comunidade.

  1. Inicie o aplicativo, vá ao menu "Arquivo" e clique no item "Criar" e, em seguida, na lista que se abre para "Projeto".
  2. Uma janela se abre "Criando um projeto", no qual você precisa primeiro clicar na inscrição "Modelos", e então "Visual C++". A seguir, selecione "Aplicativo de console Win32", defina o nome e o local do projeto. Por padrão, ele é salvo no diretório de trabalho da Comunidade do Visual Studio, em pasta do sistema "Meus documentos", mas você pode escolher um diretório diferente, se desejar. Após concluir as configurações, clique em "OK".
  3. Começa "Assistente de configuração de aplicativo Win32", no qual simplesmente clicamos "Próximo".
  4. Na próxima janela definimos os parâmetros da aplicação. Em particular, escolhemos "Aplicativo de console", e no campo « Opções adicionais» "Projeto Vazio", enquanto desmarca "Cabeçalho pré-compilado".
  5. É lançado um projeto no qual você precisa adicionar uma área para escrever código. Para fazer isso, na aba "Explorador de soluções" clique com o botão direito na inscrição "Arquivos de recursos". Aparece menu de contexto, no qual clicamos sequencialmente em "Adicionar" E "Criar elemento".
  6. Na janela que se abre "Adicionar novo elemento» selecione um item "Arquivo C++". A seguir, defina o nome do arquivo de código para o futuro aplicativo e sua extensão ".Com". Para alterar a pasta de armazenamento, clique em "Análise".
  7. Um navegador é aberto, no qual especificamos o local e clicamos em "Selecionar pasta".
  8. Como resultado, uma guia aparece com o título "Fonte.c", no qual o texto do código é digitado e editado.
  9. Em seguida, você precisa copiar o texto do código e colá-lo na área mostrada na imagem. Tomemos como exemplo o seguinte:
  10. #incluir
    #incluir

    int principal(int argc, char* argv) (
    printf("Olá, mundo!");
    _get();
    retornar 0;
    }

    Nota: O código acima é apenas um exemplo. Em vez disso, você deve usar seu próprio código para criar um programa em Visual C++.

  11. Para construir o projeto, clique em "Iniciar depuração" no menu suspenso "Depuração". Você pode simplesmente pressionar uma tecla "F5".
  12. Depois disso, aparece uma notificação avisando que o projeto atual está desatualizado. Aqui você precisa clicar em "Sim".
  13. Quando a compilação for concluída, o aplicativo exibirá uma janela de console que diz "Olá, mundo!".
  14. Podemos visualizar o arquivo criado em formato EXE usando o Windows Explorer na pasta do projeto.

Método 2: instaladores

Para automatizar o processo de instalação de software, os chamados instaladores estão se tornando cada vez mais populares. Com a ajuda deles, é criado um software cuja principal tarefa é simplificar o processo de implantação de software em um computador. Vejamos o processo de criação de um arquivo EXE usando o Smart Install Maker como exemplo.

  1. Lançamos o programa e na aba "Informação" edite o nome do futuro aplicativo. No campo "Salvar como" Clique no ícone da pasta para determinar o local onde o arquivo de saída será salvo.
  2. O Explorer é aberto, no qual selecionamos o local desejado e clicamos "Salvar".
  3. Vá para a guia "Arquivos", onde você precisa adicionar arquivos a partir dos quais o pacote será montado posteriormente. Isso é feito clicando no ícone «+» na parte inferior da interface. Também é possível adicionar um diretório inteiro clicando no ícone que mostra uma pasta com sinal de mais.
  4. A seguir, uma janela de seleção de arquivo é aberta, onde você precisa clicar no ícone da pasta.
  5. No navegador que se abre, designamos o aplicativo certo(no nosso caso isso é "Torrente", você pode ter qualquer outro) e clique em "Abrir".
  6. Como resultado, na janela "Adicionar entrada" O arquivo é exibido indicando sua localização. Deixe as opções restantes como padrão e clique em "OK".
  7. O procedimento para adicionar o objeto de origem ao aplicativo ocorre e uma entrada correspondente aparece em uma área especial do software.
  8. A seguir, clique "Requisitos" e uma guia é aberta onde você precisa verificar a lista de sistemas operacionais suportados. Deixe uma marca de seleção nos campos "WindowsXP" e tudo o que vem abaixo dele. Deixe os valores recomendados em todos os demais campos.
  9. Em seguida, abra a guia "Diálogos" clicando na inscrição correspondente no lado esquerdo da interface. Aqui deixamos tudo como padrão. Para que a instalação ocorra em fundo, você pode marcar a caixa "Instalação oculta".

  10. Assim que todas as configurações estiverem concluídas, inicie a compilação clicando no ícone de seta para baixo.
  11. O processo especificado ocorre e seu status atual é exibido na janela. Assim que a compilação for concluída, você pode testar o pacote criado ou fechar a janela clicando nos botões apropriados.
  12. O software compilado pode ser encontrado usando o Windows Explorer na pasta especificada durante a configuração.

Assim, neste artigo descobrimos que um arquivo EXE pode ser criado usando tanto ambientes de desenvolvimento de programas especializados, como Visual Studio Community, quanto instaladores especiais, por exemplo, Smart Install Maker.

Contente
1.Como compilar EXE
1.1 Tecnologia de compilação
1.2 Arquivos relacionados
2.O que precisa ser incluído no EXE

1.Como compilar EXE
1.1 Tecnologia de compilação
Epígrafe:
"Ah, sim, Pushkin, ah, sim..."
A. S. Pushkin

A tecnologia para compilar EXE no Visual FoxPro é bastante simples. Não nos distrairemos com métodos extremos como inserir comandos como CONSTRUIR PROJETO, CONSTRUIR APLICATIVO, CONSTRUIR EXE , mas nos limitaremos às conveniências proporcionadas pela interface gráfica do VFP.
Então, para criar um EXE precisamos clicar no botão no gerenciador de projetos "CONSTRUIR...". Selecionando a opção na caixa de diálogo que se abre Executável Win32/servidor COM (EXE) nós pressionamos OK. TODOS. ;-)
“Como está tudo?” - você pergunta - “Que nome usar para salvar o arquivo?”
Eu concordo... É preciso indicar, senão tudo será em vão.
Aliás, acho que seria útil lembrar que para que o processo de compilação tenha sucesso, você precisa preencher o gerenciador de projetos com os arquivos do seu programa, um dos quais deve ser tão principal (no gerenciador de projetos o nome deste arquivo está em negrito), ou seja, . o arquivo que será executado primeiro. Por padrão, o primeiro arquivo de programa (*.prg) ou arquivo de formulário (*.scx) incluído no projeto é instalado como programa principal.
Em geral tudo é bem simples! Apenas..?
Agora sobre o triste...

1.2 Arquivos relacionados
Epígrafe:
"...e quando você liga, não funciona!"
M. Zhvanetsky

Todos os aborrecimentos da fase de compilação do aplicativo já acabaram, e você, orgulhoso da consciência de sua própria superioridade sobre os meros mortais, corre aos trancos e barrancos até o cliente, instala seu aplicativo, ao mesmo tempo descrevendo para ele (o cliente) como é legal tudo será para ele agora, e contando em sua mente qual parafuso você precisa comprar alguma coisa para sobrar para a cerveja, e de repente você se depara com o fato de que seu programa super-duper não funciona. Triste. É uma pena. E o mais importante, você não terá um novo disco rígido ou o que planejou comprar com seus honorários...

O problema é que o .exe que compilamos não é um arquivo executável independente. Este pseudo-executável requer bibliotecas de suporte (.dlls) para funcionar corretamente. Não entrarei em muitos detalhes sobre isso, apenas fornecerei os nomes dos arquivos necessários para o correto funcionamento do aplicativo.
Em princípio, até a versão 6 inclusive, você pode usar o padrão para transferir o aplicativo para a máquina cliente. Assistente de configuração, que prescreve tudo de forma independente, e nos subsequentes - InstalarShield(ou outro instalador).
Todos os arquivos abaixo são o conjunto mínimo necessário de arquivos para diferentes versões do VFP (com base nos materiais):

VFP 8.0 msvcr70.dll, vfp8r.dll, vfp8rrus.dll, gdiplus.dll VFP 7.0 msvcr70.dll, vfp7r.dll, vfp7rrus.dll VFP 6.0 vfp6r.dll, vfp6renu.dll, vfp6rrus.dll VFP 5.0 vfpole50 dll, vfpodbc. .dll, vfp500.dll, vfp5rus.dll, Foxpro.int
O conjunto de bibliotecas acima deve ser colocado no diretório do programa ou no diretório do sistema Windows. Para vários Versões do Windows esses diretórios são diferentes:

Win9x, WinMe c:\Windows\SYSTEM WinNT,Win2000,WinXP c:\Windows\SYSTEM32

2.O que precisa ser incluído no EXE
Epígrafe:
"Incluir ou não incluir?"
eletricista bêbado

Tudo o que está dito abaixo é opinião pessoal do autor, que você pode ignorar. Mas ao fazer do seu jeito, lembre-se: bater a cabeça em uma parede de concreto é muito mais doloroso do que aproveitar uma pausa feita antes de você.
Por padrão, o .exe finalizado inclui todos os arquivos necessários para o funcionamento do aplicativo - programas, formulários, menus, bibliotecas, classes, etc. exceto arquivos de banco de dados e tabelas (tais arquivos podem ser identificados pelo círculo riscado próximo ao nome do arquivo no gerenciador de projetos). Tudo incluído. arquivo exe s após a compilação não poderão ser modificados (somente leitura). É claro que os arquivos de tabela (*.dbf) não devem ser incluídos, pois estão sujeitos a constantes operações de alteração e adição de dados, mas às vezes há casos em que é necessário ocultar alguns dados estáticos do usuário, mas fornecer acesso a pelo próprio programa. Melhor lugar Você não pode imaginar o “interior” de um exe-shnik.
Também é uma situação bastante comum quando você precisa “encontrar”, ou alterar temporariamente um arquivo de relatório, ou quando você tem todo um conjunto de relatórios exclusivos para cada usuário. Bom, imagine só: dez operadores e dez relatórios cada, e tudo isso em *.exe. A única solução nesta situação é excluir estes relatórios do processo final e fornecê-los juntamente com a candidatura.
Em qualquer caso, a decisão sobre quais arquivos excluir e quais deixar é sua.

É isso, acabou a cerveja, precisamos ir ao supermercado.

Atenciosamente, Vladislav Kulak

Certamente muitos de vocês, pelo menos uma vez na vida, encontraram um arquivo com a extensão .exe, não rar ou mesmo zip, mas exe. A beleza deste arquivo é que ele é autoextraível e não requer instalação programas adicionais. Muita gente pensa que para criar este tipo de arquivo são necessários alguns conhecimentos ou programas específicos, mas posso garantir que não é o caso. Os arquivos EXE são criados usando um dos arquivadores mais populares: WinRar e WinZip.

Você provavelmente tem um desses dois arquivadores instalados em seu computador, então você pode começar a praticar com segurança imediatamente. Se não houver nenhum arquivador, você poderá instalar o 7-zip com segurança, porque ele é gratuito e distribuído gratuitamente na Internet. Começaremos com este arquivador.

E assim, prepare a pasta com os arquivos que precisam ser arquivados e clique com o botão direito sobre ela. Encontramos um item como 7-Zip

Outro submenu aparece no qual devemos selecionar o item "Adicionar ao arquivo..."

Uma janela se abre, procure a seção “Opções”, nas opções existe um item “Criar arquivo SFX” Colocamos um pássaro em frente a ele. Agora prestamos atenção ao campo superior, onde está o nome do nosso futuro arquivo. Adicionamos uma extensão exe. A propósito, o nome do arquivo pode ser alterado. Você também pode especificar o local onde deseja salvá-lo. Em princípio, você pode brincar com as outras opções, mas elas não afetam o tipo de arquivo. Você pode definir o nível máximo de compactação para manter o tamanho do arquivo o menor possível.

Agora você pode clicar no botão “OK”.

Este é o arquivo que tenho na minha área de trabalho:

Agora vamos descobrir como criar exatamente o mesmo arquivo, mas usando WinRar.

Da mesma forma, clique com o botão direito na pasta e selecione "Adicionar ao arquivo":

Na janela que se abre, na aba “Geral”, você precisa na seção "Opções de arquivo" coloque um pássaro ao lado do item “Criar arquivo SFX”. Vamos instalar algum método de compactação. Eu escolhi "Bom".

Clique no botão “OK”.

O resultado é o seguinte arquivo:

Então, examinamos várias maneiras de como criar um arquivo exe auto-extraível.

E assista também a um vídeo sobre o tema:

Avalie este artigo:

Vamos considerar criação.exe usando a biblioteca do módulo py2exe. Isso requer Python 3.4 e abaixo.

Se você tiver uma versão superior do Python instalada, tente usar (abaixo)

Neste exemplo, veremos como criar .exe usando um exemplo Python3.4.

Primeiro de tudo, você precisa criar um ambiente virtual para Python3.4. Neste exemplo vamos chamá-lo de myenv. Você pode escolher qualquer outro nome, mas não se esqueça de fazer as alterações apropriadas.

No terminal, digite os seguintes comandos:

>py -3.4 -m venv meuenv > meuenv\Scripts\activate.bat

EM linha de comando o prefixo aparecerá meuenv, o que significa que o ambiente virtual denominado myenv está carregado. Todas as equipes Pitão agora usará o novo ambiente virtual.

Agora vamos instalar py2exe(https://pypi.python.org/pypi/py2exe~~HEAD=dobj) em nosso ambiente virtual:

>pip instalar py2exe

E por fim, para criar um único arquivo EXE, em nosso ambiente virtual executamos o comando:

>python -m py2exe.build_exe olá.py -c --bundle-files 0

(substituir olá.py ao nome do seu script. Se o script estiver em uma pasta diferente, você precisará usar o caminho completo para o seu script, por exemplo, C:\Projects\Python\hello.py). Isto criará uma pasta DIST que contém arquivo executável. Para acesso rápido para isso, digite no terminal:

> explorador dist

Você verá o caminho para a pasta onde o arquivo EXE está localizado.

Observação: Quando executada, uma janela será aberta e desaparecerá tão rapidamente quanto apareceu.
Isso acontece porque sistema operacional fecha automaticamente o terminal no qual o programa do console foi finalizado.
Para mudar esta situação, você pode adicionar a linha

> input ("Clique para sair...")

no final do arquivo Pitão. O intérprete aguardará a entrada do usuário e a janela permanecerá aberta até que o usuário pressione Enter.

Você pode estudar o uso em detalhes py2exe na documentação na página do módulo: https://pypi.python.org/pypi/py2exe
A saída do ambiente virtual é feita com o comando

>desativar

Método 2

Através do comando Cadeia de caracteres do Windows instale o pyinstaller:

> pip instalar pyinstaller

Na linha de comando, vá até a pasta onde o arquivo está localizado

CDC:\...

Então na linha de comando digitamos o comando

Pyinstaller --onefile exemplo.py

Em vez de exemplo.py use o nome do arquivo a partir do qual deseja criar o arquivo exe.

Em alguns minutos tudo está pronto! Provavelmente, o arquivo exe estará localizado na subpasta criada distância

HomeLisp(pelo menos na versão proposta) não é capaz de compilar código Lisp em instruções de microprocessador. Portanto, para criar arquivos executáveis ​​​​autônomos, é utilizada uma tecnologia que pode ser chamada pseudo-EXE.

A essência desta tecnologia é a seguinte.

Na entrega HomeLisp inclui um arquivo executável stub que contém o kernel HomeLisp. O tamanho deste arquivo é de cerca de duzentos quilobytes. Ao criar um arquivo EXE, primeiro é feita uma cópia do arquivo stub com um nome especificado pelo desenvolvedor. Todas as outras manipulações são realizadas com a cópia criada, que chamaremos posteriormente direcionado

arquivo. Vamos supor que um desenvolvedor tenha escrito e carregado uma série de funções que juntas compõem aplicativo . Ao criar um arquivo EXE, todas as funções escolhidas pelo desenvolvedor são atribuídas à “cauda” do arquivo alvo. Além dessas funções, é escrita a chamada “cauda” do arquivo de destino. iniciando a expressão S HomeLisp, bem como configurações de ambiente definidas pelo usuário

(tamanhos de pilhas internas, número de objetos dinâmicos, etc.) HomeLisp Quando o arquivo de destino é iniciado, o controle é primeiro assumido pelo programa de inicialização do kernel. , que então lê todas as funções salvas pelo usuário no arquivo e as carrega no ambiente Lisp. Depois disso, o bloco recebe o controle iniciando a expressão S

, e o programa fornecido pelo desenvolvedor começa a ser executado. Vejamos o processo de criação de um arquivo EXE usando um exemplo prático simples: vamos criar um programa de diálogo que irá calcular máximo divisor comum HomeLisp dois inteiros usando o algoritmo euclidiano.

Este exemplo não é tão inútil: já que trabalha com números inteiros de capacidade ilimitada, escrever um exemplo semelhante em qualquer ambiente de programação comum (VB, C++, Delphi) exigiria um esforço significativo... Função

*GCD

Exemplos de chamadas mostram a funcionalidade da função. Em seguida, você precisa criar um shell de diálogo para chamar esta função. No caso mais simples, esse shell pode ser organizado da seguinte forma:

Solicitação (via função PERGUNTAR) primeiro operando;

Solicitação do segundo operando;

Cálculo do resultado;

Exibindo o resultado usando uma função DIZER ;

Vamos escrever uma expressão definidora para a função GCD-1, no qual o algoritmo acima será implementado:

(defun GCD-1 nil (prog (a1 a2) (setq a1 (str2fix (Pergunte "Insira o primeiro operando"))) (setq a2 (str2fix (Pergunte "Insira o segundo operando"))) (TRY (diga (fix2str (* mdc a1 a2))) EXCETO (diga "Erro!"))))

Observe que o resultado da chamada PERGUNTAR tem tipo CORDA, e a função trabalha com números inteiros de capacidade ilimitada, escrever um exemplo semelhante em qualquer ambiente de programação comum (VB, C++, Delphi) exigiria um esforço significativo... requer operandos do tipo FIXO. Portanto, antes de atribuir valores fornecidos pelo usuário a variáveis ​​locais, a1 E a2, esses valores devem ser convertidos para o tipo FIXO(para que servem as chamadas de função? STR2FIX).

Além disso, uma vez que está sendo preparado um programa de diálogo destinado ao usuário final, ele deve ser fornecido possíveis erros. É por isso que o cálculo do máximo divisor comum é feito seção crítica do código usando uma chamada de função TENTAR Caso ocorra alguma falha durante o processo de cálculo, o programa não irá “travar”, mas exibirá a mensagem “Erro!”.

Se você executar a função GCD-1 no ambiente de desenvolvimento, a janela do prompt do primeiro operando será exibida:


O usuário insere o primeiro operando e pressiona o botão OK; Aparece uma janela solicitando o segundo operando:


O usuário insere o segundo operando, pressiona o botão OK e obtém o resultado:


Agora vamos construir com base na função depurada GCD-1 arquivo executável. Para fazer isso, estando no ambiente de desenvolvimento, selecione o item do menu principal arquivo EXE ou clique no botão na barra de ferramentas com o seguinte ícone:


Em ambos os casos, a janela de criação do arquivo EXE será aberta:



Para criar um arquivo EXE, você deve seguir estas etapas:

Defina o nome do arquivo EXE. O nome (e caminho) do futuro arquivo EXE são especificados na caixa de combinação no canto superior esquerdo do formulário de criação do arquivo EXE. O nome e o caminho podem ser definidos manualmente ou você pode clicar no botão "..." e selecionar o diretório e o nome usando a caixa de diálogo padrão Salvar como. Por padrão, um arquivo é criado noname.exe no diretório atual.

Na área de entrada "Iniciando a Expressão S"é necessário especificar o código a partir do qual começará a execução da futura aplicação. A expressão S inicial pode ser uma chamada de função. Se você precisar definir uma expressão S inicial que consiste em várias chamadas, essas chamadas deverão ser “incluídas” em PROG.- projeto.

As ações listadas são as mínimas necessárias. Além disso, o usuário também pode fazer o seguinte:

Na lista intitulada "Funções, constantes, variáveis", desmarque as caixas de seleção próximas aos objetos cuja presença não é necessária para a execução da aplicação. Esta ação aumentará ligeiramente a velocidade de execução da aplicação;

Altere os valores das configurações na lista localizada no canto superior direito. A sequência de ações ao substituir os valores dos parâmetros será descrita a seguir;

Redefina a caixa de seleção "Exibir formulário de envio na inicialização". Se esta caixa de seleção permanecer selecionada, um ícone especial será exibido quando o aplicativo for iniciado. sala de controle forma. Este formulário pode receber um título (no campo de entrada correspondente). Usar o formulário de despacho é conveniente para depuração.

Marque ou desmarque a caixa de seleção "Notificar-me quando concluir". Se esta caixa de seleção estiver marcada, uma mensagem será exibida antes que o aplicativo seja encerrado.

A janela para criar um arquivo EXE com o conjunto mínimo de parâmetros exigido pode ser semelhante a:



Em seguida, você precisa clicar no botão com uma marca de seleção verde. Se o arquivo EXE solicitado já existir, HomeLisp solicitará que você confirme a substituição do arquivo ou especifique um novo nome. Depois disso, após a conclusão bem-sucedida, a seguinte mensagem será exibida:


Você pode ter certeza de que o arquivo EXE aparece no diretório atual gcd-1.exe, quando iniciado, ocorre o diálogo descrito com o usuário.

Se, ao criar um arquivo EXE, marque a caixa de seleção “Exibir formulário de envio na inicialização” e defina o título do formulário:


Então, ao executar o arquivo EXE resultante, um formulário de despacho com o seguinte formato é exibido no canto superior direito da tela:


Ao selecionar o item do menu Iniciar (ou clicar no botão correspondente abaixo), o aplicativo começa a ser executado. Após o preenchimento da inscrição, o formulário de despacho permanece na tela, permitindo a execução da aplicação diversas vezes. Para encerrar permanentemente o aplicativo, você precisa selecionar o item de menu "Sair" (ou clicar no botão abaixo).

Caso ocorra um erro durante a execução de uma aplicação com formulário de despacho, as informações sobre o erro são exibidas na área de saída, que normalmente fica oculta. Por exemplo, se você fizer da expressão S inicial uma chamada para uma função inexistente (desconhecido), então quando executado, aparecerá a imagem abaixo:


Usar o formulário de despacho permite interromper o aplicativo à força. Para fazer isso, use o item de menu "Parar" e o botão localizado abaixo (tanto o item de menu quanto o botão ficam ativos apenas enquanto o aplicativo está em execução). Se, por exemplo, o cálculo do fatorial de um número suficientemente grande for especificado como expressão inicial, você poderá ver o item de menu e o botão Parar:


Se pressionar “Stop” durante a execução, a execução do programa é interrompida:


O item do menu principal "Janelas" do formulário de despacho (e o botão de comando correspondente) estará ativo quando pelo menos uma janela gráfica for criada durante a execução da aplicação. Ao selecionar o item "Windows" (ou clicar no botão localizado abaixo), o gerenciador gráfico de janelas é acessado.

O modo de construção de arquivos EXE com formulário de despacho tem como objetivo facilitar a depuração de aplicativos. Se você não usar o formulário de envio, gerencie janelas gráficas

O próprio desenvolvedor terá que fazer isso e, se o aplicativo congelar, ele terá que usar o gerenciador de tarefas do sistema operacional para removê-lo.



Caso seja necessário alterar o valor de algum parâmetro de configuração (tamanho da pilha, número de tokens, etc.), deve-se clicar na linha desejada na lista "Parâmetros". O valor numérico do parâmetro correspondente será transferido para a área de entrada localizada abaixo da lista: Como segundo exemplo de criação de um arquivo EXE , considere o problema anterior (calculando GCD


), mas com uma interface gráfica em janela. Para fazer isso, crie uma caixa de diálogo (conforme descrito), em cujo formulário colocaremos três rótulos, três campos de entrada e dois botões. Vamos atribuir um procedimento manipulador a um dos botões, no qual calcularemos o GCD dos números inseridos no primeiro e segundo campos de entrada e inseriremos o GCD calculado no campo de resultado. O manipulador de clique do segundo botão fechará e destruirá a caixa de diálogo. O formulário de diálogo com controles pode ser semelhante ao abaixo: Código do programa

(prog nil (dlgCreate "_Dlg_ 419 233 "Maior divisor comum:") (dlgAddControl "_Dlg_ "_LBL_1 _LABEL 14 15 100 21 "("Tahoma" 14.25 1 0 0) "Primeiro:" 0 &H80000012 &H8000000F) (dlgAddControl " " _TXT_1 _TEXT 155 13 248 31 "("Tahoma" 14 1 0 0) "" 0 &H80000008 &H80000005) (dlgAddControl "_Dlg_ "_LBL_2 _LABEL 12 59 133 26 "("Tahoma" 14.2 5 1 0 0 "Segundo) : "0 e H80000012 &H8000000F) (dlgAddControl "_Dlg_ "_TXT_2 _TEXT 156 56 247 31 "("Tahoma" 14 1 0 0) "" 0 &H80000008 &H80000005) (dlgAddControl "_Dlg_ "_L BL_3 _LABEL 13 101 127 "("Tahoma" 14, 25 1 0 0) "N.O.D." 0 &HFF &H8000000F) (dlgAddControl "_Dlg_ "_TXT_3 _TEXT 157 98 247 31 "("Tahoma" 14 1 0 0) "" 0 &HFF &H80000005) (dlgAddControl "_Dlg_ " _BUT_1 _BUTTON 24 1 48 180 50 "( "Tahoma" 8,25 1 0 0) "Calcular") (dlgPutPicture "_BUT_1 7) (dlgAddControl "_Dlg_ "_BUT_2 _BUTTON 213 149 180 50 "("Tahoma" 8,25 1 0 0) "Fechar") (dlgPutPicture "_BUT_2 36) / // // manipulador de eventos CLICK para o botão _BUT_2 // (defun _BUT_2_Click Nil (prog Nil (dlgHide "_DLG_) (dlgDestroy "_DLG_) (gc))) // // Objetivo do procedimento -events _BUT_2_Click control _BUT_2 // ( dlgSetEvent "_BUT_2 "_BUT_2_Click) // // manipulador de eventos CLICK para o botão _BUT_1 // (defun _BUT_1_Click Nil (prog (a1 a2) (setq a1 (str2fix (dlgGetText "_TXT_1))) (setq a2 (str2fix (dlgGetText "_TXT_2 ))) (TRY (dlgPutText "_TXT_3 (fix2str (*gcd a1 a2))) EXCEPT (dlgPutText "_TXT_3 "Erro!!!")))) // // Atribuindo o procedimento de evento _BUT_1_Click control _BUT_1 // (dlgSetEvent " _BUT_1 "_BUT_1_Click) // // Exibindo a caixa de diálogo _Dlg_ // (dlgShow "_Dlg_))

Para construir um arquivo EXE, você precisa carregar uma função no ambiente Lisp e escrever uma expressão inicial para exibir a caixa de diálogo. A maneira mais fácil é “mergulhar” no que foi dito acima PROG.-construção em função PRINCIPAL sem parâmetros. Então a expressão S inicial para executar o arquivo EXE será a chamada (principal). Então, se você carregar as seguintes funções no ambiente Lisp:
// // Encontrando o máximo divisor comum // (defun *gcd (x y) (cond ((eq x y) x) ((greaterp y x) (*gcd y x)) ((eq (remainder x y) 0) y) ( T (*gcd y (restante x y))))) // // Programa de exibição de diálogo _Dlg_ // (defun main nil (prog nil (dlgCreate "_Dlg_ 419 233 "Maior divisor comum:") (dlgAddControl "_Dlg_ "_LBL_1 _LABEL 14 15 100 21 "("Tahoma" 14,25 1 0 0) "Primeiro:" 0 &H80000012 &H8000000F) (dlgAddControl "_Dlg_ "_TXT_1 _TEXT 155 13 248 31 "("Tahoma" 14 1 0 0) "" 0 &H800 00 008 e H80000005) (dlgAddControl "_Dlg_ "_LBL_2 _LABEL 12 59 133 26 "("Tahoma" 14,25 1 0 0) "Segundo:" 0 &H80000012 &H8000000F) (dlgAddControl "_Dlg_ "_TXT_2 _TEXT 156 56 7 31 "("Tahoma" 14 1 0 0) "" 0 &H80000008 &H80000005) (dlgAddControl "_Dlg_ "_LBL_3 _LABEL 13 101 127 27 "("Tahoma" 14.25 1 0 0) "N.O.D." 0 &HFF &H8000000F) (dlgAddControl "_D lg_ "_TXT_3 T 157 98 247 31 "(" Tahoma "14 1 0 0 0)" "0 & hff & h800005) (dlgaddcontrol" _dlg_ "_but_1 _button 24 148 180 50" ("Tahoma" 8,25 1 0 0 0 0 0 0 0 0 0 0 0) _BUT_1 7) (dlgAddControl "_Dlg_ "_BUT_2 _BUTTON 213 149 180 50 "("Tahoma" 8.25 1 0 0) "Fechar") (dlgPutPicture "_BUT_2 36) // // CLICK manipulador de eventos para o botão _BUT_2 // (defun _BUT_2_Click Nil (prog Nil ( dlgHide "_DLG_) (dlgDestroy "_DLG_) (gc)) // // Atribuindo o procedimento de evento _BUT_2_Click ao controle _BUT_2 // (dlgSetEvent "_BUT_2 "_BUT_2_Click) // // manipulador de evento CLICK para o botão _BUT_1 // (defun _BUT_1_Click Nil (prog (a1 a2) (setq a1 (str2fix (dlgGetText "_TXT_1))) (setq a2 (str2fix (dlgGetText "_TXT_2))) (TRY (dlgPutText "_TXT_3 (fix2str (*gcd a1 a2) )) EXCETO ( dlgPutText "_TXT_3 "Erro!!!")))) // // Atribuindo o procedimento de evento _BUT_1_Click ao controle _BUT_1 // (dlgSetEvent "_BUT_1 "_BUT_1_Click) // // Exibindo a caixa de diálogo _Dlg_ // (dlgShow "_Dlg_ ) ))

e então construa o arquivo EXE gcd-2.exe, definindo seguintes parâmetros:


Vai dar certo um arquivo EXE totalmente funcional. Você pode executá-lo e ter certeza de que , considere o problema anterior (calculando considerado correto:

Análise