Създайте exe файл, за да стартирате програмата. Как да създадете .exe от файл на Python3 в Windows

EXE е формат, без който никой софтуер не може. Той изпълнява всички процеси по стартиране или инсталиране на програми. Може да бъде или пълноценно приложение, или част от него.

Има две опции за създаване на EXE файл. Първият е използването на среди за програмиране, а вторият е използването на специални инсталатори, с помощта на които се създават различни „преопаковки“ и пакети, които могат да бъдат инсталирани с едно кликване. По-долу ще разгледаме и двете опции, като използваме примери.

Метод 1: Общност на Visual Studio

Нека разгледаме процеса на създаване на проста програма, базирана на език за програмиране "Visual C++"и нейното компилиране в Визуално студиоОбщност.

  1. Стартирайте приложението, отидете в менюто "файл", след което щракнете върху елемента "Създай", а след това в списъка, който се отваря към "Проект".
  2. Отваря се прозорец "Създаване на проект", в който първо трябва да кликнете върху надписа "Шаблони", и тогава "Visual C++". След това изберете „Конзолно приложение Win32“, задайте името и местоположението на проекта. По подразбиране той се записва в работната директория на общността на Visual Studio, в системна папка "Моите документи", но можете да изберете друга директория, ако желаете. След като завършите настройките, щракнете "ДОБРЕ".
  3. Започва „Съветник за конфигуриране на приложения Win32“, в който просто кликваме "по-нататък".
  4. В следващия прозорец определяме параметрите на приложението. По-специално ние избираме "Конзолно приложение", и в полето « Допълнителни опции» "Празен проект", докато премахвате отметката „Предварително компилиран хедър“.
  5. Стартира се проект, в който трябва да добавите област за писане на код. За да направите това, в раздела „Изследовател на решения“щракнете с десния бутон върху надписа „Ресурсни файлове“. Появява се контекстно меню, в който последователно кликваме върху "Добави"И „Създаване на елемент“.
  6. В прозореца, който се отваря „Добави нов елемент» Изберете предмет "C++ файл". След това задайте името на кодовия файл за бъдещото приложение и неговото разширение ".С". За да промените папката за съхранение, щракнете върху "преглед".
  7. Отваря се браузър, в който посочваме местоположението и кликваме върху „Избор на папка“.
  8. В резултат на това се появява раздел със заглавието "Източник.c", в който се въвежда и редактира кодов текст.
  9. След това трябва да копирате текста на кода и да го поставите в областта, показана на изображението. Да вземем следното като пример:
  10. #включи
    #включи

    int main(int argc, char* argv) (
    printf("Здравей, свят!");
    _getch();
    връщане 0;
    }

    Забележка: Кодът по-горе е само пример. Вместо това трябва да използвате свой собствен код, за да създадете програма на Visual C++.

  11. За да създадете проекта, щракнете върху „Стартиране на отстраняване на грешки“в падащото меню "Отстраняване на грешки". Можете просто да натиснете клавиш "F5".
  12. След което се появява известие с предупреждение, че текущият проект е остарял. Тук трябва да кликнете върху "да".
  13. Когато компилацията приключи, приложението показва конзолен прозорец, който казва "Здравей свят!".
  14. Можем да видим създадения файл във формат EXE с помощта на Windows Explorer в папката на проекта.

Метод 2: Инсталатори

За автоматизиране на процеса на инсталиране на софтуер, така наречените инсталатори стават все по-популярни. С тяхна помощ се създава софтуер, чиято основна задача е да опрости процеса на инсталиране на софтуер на компютър. Нека да разгледаме процеса на създаване на EXE файл с помощта на Smart Install Maker като пример.

  1. Стартираме програмата и в раздела "Информация"редактирайте името на бъдещото приложение. В полето "Запази като"Щракнете върху иконата на папка, за да определите мястото, където ще бъде записан изходният файл.
  2. Отваря се Explorer, в който избираме желаното място и щракваме "Запазване".
  3. Отидете в раздела "файлове", където трябва да добавите файлове, от които по-късно ще бъде сглобен пакетът. Това става чрез щракване върху иконата «+» в долната част на интерфейса. Възможно е също така да добавите цяла директория, като щракнете върху иконата, която показва папка със знак плюс.
  4. След това се отваря прозорец за избор на файл, където трябва да кликнете върху иконата на папката.
  5. В браузъра, който се отваря, посочваме правилното приложение(в нашия случай това е "Торент", можете да имате всякакви други) и щракнете върху "Отворено".
  6. В резултат на това в прозореца "Добави бележка"Файлът се показва, като се посочва неговото местоположение. Оставете останалите опции по подразбиране и щракнете "ДОБРЕ".
  7. Възниква процедурата за добавяне на изходния обект към приложението и се появява съответен запис в специална област на софтуера.
  8. След това щракнете "Изисквания"и се отваря раздел, където трябва да проверите списъка с поддържани операционни системи. Оставете отметка в полетата "Уиндоус експи"и всичко, което идва под него. Оставете препоръчаните стойности във всички останали полета.
  9. След това отворете раздела "Диалози"като щракнете върху съответния надпис от лявата страна на интерфейса. Тук оставяме всичко по подразбиране. За да се извърши инсталацията в заден план, можете да поставите отметка в квадратчето "Скрита инсталация".

  10. След като всички настройки са завършени, започнете компилацията, като щракнете върху иконата със стрелка надолу.
  11. Посоченият процес се извършва и текущият му статус се показва в прозореца. След като компилацията приключи, можете да тествате създадения пакет или да затворите напълно прозореца, като щракнете върху съответните бутони.
  12. Компилираният софтуер може да бъде намерен с помощта на Windows Explorer в папката, посочена по време на настройката.

По този начин в тази статия разбрахме, че EXE файл може да бъде създаден, като се използват както специализирани среди за разработка на програми, като Visual Studio Community, така и специални инсталатори, например Smart Install Maker.

Съдържание
1.Как да компилирам EXE
1.1 Технология на компилиране
1.2 Свързани файлове
2. Какво трябва да бъде включено в EXE

1.Как да компилирам EXE
1.1 Технология на компилиране
Епиграф:
"О, да, Пушкин, о, да..."
А. С. Пушкин

Технологията за компилиране на EXE във Visual FoxPro е доста проста. Няма да се разсейваме от такива екстремни методи като въвеждане на команди като БИЛД ПРОЕКТ, БИЛД ПРИЛОЖЕНИЕ, БИЛД EXE , но ще се ограничим до удобствата, предоставяни от VFP графичния интерфейс.
И така, за да създадем EXE, трябва да щракнете върху бутона в мениджъра на проекти "СТРОЙ...". Като изберете опцията в диалоговия прозорец, който се отваря Win32 изпълним/COM сървър (EXE) натискаме Добре. ВСИЧКО. ;-)
„Как е всичко?“ - питате вие ​​- „Какво ще кажете под какво име да запишете файла?“
Съгласен съм... Необходимо е да се посочи, в противен случай всичко ще бъде напразно.
Между другото, мисля, че ще е полезно да ви напомня, че за да бъде процесът на компилация успешен, трябва да попълните мениджъра на проекта с файлове на вашата програма, един от които трябва да е основен (в мениджъра на проекта името на този файл е в удебелен шрифт), т.е. файлът, който ще бъде изпълнен първи. По подразбиране първият програмен файл (*.prg) или файл с формуляр (*.scx), включен в проекта, се инсталира като основна програма.
Като цяло всичко е съвсем просто! Просто..?
Сега за тъжното...

1.2 Свързани файлове
Епиграф:
"...и когато го включиш, не работи!"
М. Жванецки

Всички неприятности на етапа на компилиране на приложението вече са приключили и вие, горди от съзнанието за собственото си превъзходство над обикновените смъртни, се втурвате със скокове и граници към клиента, инсталирате приложението си, като едновременно с това му описвате (клиента) колко готино сега всичко ще бъде за него и броейки наум кой винт трябва да купиш нещо, за да ти остане за бира, изведнъж се натъкваш на факта, че твоята супер-дупер програма не прави пари. тъжно Срамота е. И най-важното, няма да имате нов твърд диск или каквото сте планирали да купите от таксата си...

Работата е там, че .exe, който компилирахме, не е самостоятелен изпълним файл. Този псевдоизпълним файл изисква поддържащи библиотеки (.dlls), за да функционира правилно. Няма да навлизам в много подробности за това, а просто ще дам имената на файловете, необходими за правилното функциониране на приложението.
По принцип до версия 6 включително можете да използвате стандартната за прехвърляне на приложението на клиентската машина. Съветник за настройка, който независимо предписва всичко, а в следващите - InstallShield(или друг инсталатор).
Всички файлове по-долу са минимално необходимият набор от файлове за различни версии на VFP (въз основа на материали):

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, vfp6.dll fpodbc .dll, vfp500.dll, vfp5rus.dll, Foxpro.int
Горният набор от библиотеки трябва да бъде поставен в програмната директория или в системната директория на Windows. За различни Windows версиитези директории са различни:

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

2. Какво трябва да бъде включено в EXE
Епиграф:
„Да включа или да не включа?“
пиян електротехник

Всичко изложено по-долу е лично мнение на автора, което можете да пренебрегнете. Но когато го правите по вашия начин, помнете: да си удряш главата в бетонна стена е много по-болезнено, отколкото да се възползваш от почивка, направена преди теб.
По подразбиране ready-made.exe включва всички файлове, необходими за работата на приложението – програми, формуляри, менюта, библиотеки, класове и др. с изключение на файлове с бази данни и таблици (такива файлове могат да бъдат идентифицирани чрез зачеркнатия кръг до името на файла в мениджъра на проекти). Всички включени в. exe файл s след компилация ще стане непроменим (само за четене). Ясно е, че табличните файлове (*.dbf) не трябва да се включват, тъй като те са обект на постоянни операции за промяна и добавяне на данни, но понякога има случаи, когато е необходимо да се скрият някои статични данни от потребителя, но да се осигури достъп до то от самата програма. Най-доброто мястоНе можете да си представите „вътрешностите“ на бившия шник.
Също така е доста често срещана ситуация, когато трябва да „намерите“ или временно да промените файл с отчет или когато имате цял набор от отчети, които са уникални за всеки потребител. Е, наистина, представете си: десет оператора и десет отчета всеки, и всичко това в *.exe. Единственото решение в тази ситуация е да изключите тези отчети от крайния файл и да ги предоставите с приложението.
Във всеки случай решението кои файлове да изключите и кои да оставите зависи от вас.

Това е всичко, бирата свърши, трябва да отидем до бакалията.

С уважение, Владислав Кулак

Със сигурност много от вас поне веднъж в живота си са попадали на архив с разширение .exe, не rar или дори zip, а exe. Красотата на този архив е, че той се разархивира сам и не изисква инсталация допълнителни програми. Много хора смятат, че за да се създаде такъв архив са необходими някакви специфични знания или програми, но мога да ви уверя, че това не е така. EXE архивите се създават с помощта на един от няколкото най-популярни архиватори: WinRar и WinZip.

Вероятно имате инсталиран един от тези два архиватора на вашия компютър, така че можете спокойно да започнете да практикувате веднага. Ако изобщо няма архиватор, тогава можете безопасно да инсталирате 7-zip, защото той е безплатен и се разпространява свободно в Интернет. Ще започнем с този архиватор.

И така, подгответе папката с файловете, които трябва да бъдат архивирани, и щракнете с десния бутон върху нея. Намираме артикул като 7-Zip

Изскача друго подменю, от което трябва да изберем елемента "Добави към Архив..."

Отваря се прозорец, потърсете секцията „Опции“, в опциите елемента „Създаване на SFX архив“Срещу него поставяме птица. Сега обръщаме внимание на най-горното поле, където е името на бъдещия ни архив. Добавихме разширение exe. Между другото, името на архива може да бъде променено. Можете също така да посочите местоположението, където искате да го запазите. По принцип можете да си поиграете с другите опции, но те не влияят на вида на архива. Можете да зададете максимално ниво на компресия, за да запазите размера на архива възможно най-малък.

Сега можете да кликнете върху бутона "OK".

Това е файлът, който имам на работния плот:

Сега нека да разберем как да създадем точно същия архив, но с помощта на WinRar.

По същия начин щракнете с десния бутон върху папката и изберете "Добави към Архив":

В прозореца, който се отваря, в раздела „Общи“, трябва да влезете в секцията „Опции за архивиране“поставете птица до предмета „Създаване на SFX архив“. Нека инсталираме някакъв метод за компресиране. Избрах "Добре".

Кликнете върху бутона "OK".

Резултатът е следният архив:

Така че разгледахме няколко начина за как да създадете саморазархивиращ се exe архив.

И също така гледайте видео по темата:

Оценете тази статия:

Ще обмислим create.exeизползвайки библиотеката на модула py2exe. Това изисква Python 3.4 и По-долу.

Ако имате инсталирана по-висока версия на Python, опитайте да използвате (по-долу)

В този пример ще разгледаме създаването на .exe, използвайки пример Python3.4.

На първо място, трябва да създадете виртуална среда за Python3.4. В този пример ще го наречем myenv. Можете да изберете всяко друго име, но не забравяйте да направите съответните промени.

На терминала въведете следните команди:

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

IN командна линияще се появи префикс myenv, което означава, че виртуалната среда с име myenv е заредена. Всички отбори Pythonсега ще използва новата виртуална среда.

Сега да инсталираме py2exe(https://pypi.python.org/pypi/py2exe~~HEAD=dobj) в нашата виртуална среда:

>pip инсталирайте py2exe

И накрая, за да създадем един EXE файл, в нашата виртуална среда изпълняваме командата:

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

(заменете здравей.pyкъм името на вашия скрипт. Ако скриптът е в друга папка, тогава трябва да използвате пълния път до вашия скрипт, например C:\Projects\Python\hello.py). Това ще създаде папка DIST, която съдържа изпълним файл. За бърз достъпкъм него въведете в терминала:

> explorer dist

Ще видите пътя до папката, където се намира EXE файла.

Забележка:Когато се изпълни, прозорец ще се отвори и ще изчезне толкова бързо, колкото се е появил.
Това се случва, защото операционна системаавтоматично затваря терминала, в който е завършена конзолната програма.
За да промените тази ситуация, можете да добавите линията

> вход ("Щракнете за изход...")

в края на файла Python. Интерпретаторът ще изчака въвеждането от потребителя и прозорецът ще остане отворен, докато потребителят не натисне enter.

Можете да проучите подробно употребата py2exeв документацията на страницата на модула: https://pypi.python.org/pypi/py2exe
Излизането от виртуалната среда става с командата

> деактивиране

Метод 2

Чрез команда Windows низинсталирайте pyinstaller:

> pip инсталирайте pyinstaller

В командния ред отидете до папката, в която се намира файлът

CDC:\...

След това в командния ред въвеждаме командата

Pyinstaller --onefile example.py

Вместо exapmle.pyизползвайте името на файла, от който искате да създадете exe файла.

След няколко минути всичко е готово! Най-вероятно exe файлът ще се намира в създадената подпапка разст

HomeLisp(поне в предложената версия) не е в състояние да компилира Lisp код в микропроцесорни инструкции. Следователно, за да създадете автономни изпълними файлове, се използва технология, която може да бъде извикана псевдо-EXE.

Същността на тази технология е следната.

В доставка HomeLispвключва изпълним файл мъниче, който съдържа ядрото HomeLisp. Размерът на този файл е около двеста килобайта. Когато създавате EXE файл, първо се прави копие на файла мъниче с име, посочено от разработчика. Всички по-нататъшни манипулации се извършват със създаденото копие, което ще наречем допълнително насоченифайл.

Да приемем, че разработчик е написал и качил поредица от функции, които заедно съставят приложение. Когато създавате EXE файл, всички функции, избрани от разработчика, се присвояват на „опашката“ на целевия файл. В допълнение към тези функции се записва така наречената „опашка“ на целевия файл. стартиране на S-израз, както и дефинирани от потребителя настройки на средата HomeLisp(размери на вътрешни стекове, брой динамични обекти и т.н.)

Когато целевият файл се стартира, контролът първо се поема от програмата за инициализация на ядрото. HomeLisp, който след това чете всички запазени от потребителя функции от файла и ги зарежда в средата на Lisp. След това блокът получава контрол стартиране на S-израз, и програмата, предоставена от разработчика, започва да се изпълнява.

Нека да разгледаме процеса на създаване на EXE файл, използвайки прост практически пример: нека създадем диалогова програма, която ще изчисли най-голям общ делителдве цели числа с помощта на евклидовия алгоритъм. Този пример не е толкова безполезен: тъй като HomeLispработи с цели числа с неограничен капацитет, писането на подобен пример във всяка обща среда за програмиране (VB, C++, Delphi) би изисквало значителни усилия...

функция *GCDима следната форма:

(defun *gcd (x y) (cond ((eq x y) x) ((greaterp y x) (*gcd y x)) ((eq (остатък x y) 0) y) (T (*gcd y (остатък x y))) )) ==> *gcd (*gcd 655 72) ==> 1 (*gcd 655 75) ==> 5 (*gcd 65536 4096) ==> 4096

Примерите за обаждания показват функционалността на функцията. След това трябва да създадете диалогова обвивка, за да извикате тази функция. В най-простия случай тази обвивка може да бъде организирана по следния начин:

Заявка (чрез функция ПИТАМ) първи операнд;

Заявка за втория операнд;

Изчисляване на резултата;

Показване на резултата с помощта на функция КАЗВАМ ;

Нека напишем дефиниращ израз за функцията GCD-1, в който ще бъде реализиран горният алгоритъм:

(defun GCD-1 nil (prog (a1 a2) (setq a1 (str2fix (Попитайте „Въведете първия операнд“))) (setq a2 (str2fix (Попитайте „Въведете втория операнд“))) (TRY (кажете (fix2str (* gcd a1 a2))) ОСВЕН (кажете "Грешка!"))))

Моля, имайте предвид, че резултатът от обаждането ПИТАМима тип STRING, и функцията *GCDизисква операнди от тип ФИКСИРАН. Следователно, преди да присвоите предоставени от потребителя стойности на локални променливи, a1И a2, тези стойности трябва да бъдат преобразувани в тип ФИКСИРАН(за какво се използват извикванията на функции? STR2FIX).

Освен това, тъй като се изготвя диалогова програма, предназначена за крайния потребител, тя трябва да бъде предоставена възможни грешки. Ето защо се прави изчисляването на най-големия общ делител критична част от кодаизползвайки извикване на функция ОПИТВАМАко възникне грешка по време на процеса на изчисление, програмата няма да се „срине“, а ще покаже съобщението „Грешка!“.

Ако изпълните функцията GCD-1от средата за разработка ще се покаже първият прозорец с подкана за операнд:


Потребителят въвежда първия операнд и натиска бутона Добре; Появява се прозорец с искане за втория операнд:


Потребителят въвежда втория операнд, натиска бутона Добреи получава резултата:


Сега нека изградим въз основа на дебъгваната функция GCD-1изпълним файл. За да направите това, като сте в средата за разработка, изберете елемента от главното меню EXE файлили щракнете върху бутона в лентата с инструменти със следната икона:


И в двата случая ще се отвори прозорецът за изграждане на EXE файл:



За да създадете EXE файл, трябва да изпълните следните стъпки:

Задайте името на EXE файла. Името (и пътят) на бъдещия EXE файл се посочва в разгъващия се списък в горния ляв ъгъл на формата за създаване на EXE файл. Името и пътя могат да бъдат зададени ръчно или можете да щракнете върху бутона "..." и да изберете директорията и името, като използвате стандартния диалогов прозорец Запази като. По подразбиране се създава файл noname.exeв текущата директория.

Във входната зона "Стартиране на S-израз"необходимо е да посочите кода, от който ще започне изпълнението на бъдещото приложение. Началният S-израз може да бъде извикване на функция. Ако трябва да дефинирате начален S-израз, състоящ се от няколко извиквания, тогава тези извиквания трябва да бъдат „затворени“ в ПРОГ- дизайн.

Изброените действия са минимално необходимите. Освен това потребителят може допълнително да направи следното:

В списъка, озаглавен „Функции, константи, променливи“, изчистете квадратчетата за отметка до обекти, чието присъствие не е необходимо, за да работи приложението. Това действие леко ще увеличи скоростта на изпълнение на приложението;

Променете стойностите на настройките в списъка, разположен в горния десен ъгъл. Последователността от действия при замяна на стойностите на параметрите ще бъде описана по-долу;

Нулирайте отметката в квадратчето „Показване на формуляра за изпращане при стартиране“. Ако това поле за отметка е оставено избрано, при стартиране на приложението ще се покаже специална икона. контролна залаформа. Тази форма може да получи заглавие (в съответното поле за въвеждане). Използването на формуляра за изпращане е удобно за отстраняване на грешки.

Поставете или премахнете отметката от квадратчето „Извести ме, когато завърши“. Ако това квадратче е отметнато, ще се покаже съобщение, преди приложението да приключи.

Прозорецът за създаване на EXE файл с минимално необходимия набор от параметри може да изглежда така:



След това трябва да щракнете върху бутона със зелена отметка. Ако поръчаният EXE файл вече съществува, HomeLispще ви подкани да потвърдите презаписването на файла или да посочите ново име. След което, при успешно завършване, се показва следното съобщение:


Можете да се уверите, че EXE файл се появява в текущата директория gcd-1.exe, при стартиране се появява описаният диалог с потребителя.

Ако, когато създавате EXE файл, поставете отметка в квадратчето „Показване на формуляра за изпращане при стартиране“ и задайте заглавието на формуляра:


След това, когато изпълнявате получения EXE файл, в горния десен ъгъл на екрана се показва формуляр за изпращане на следния формуляр:


Когато изберете елемента от менюто "Старт" (или щракнете върху съответния бутон по-долу), приложението започва да се изпълнява. След като приложението приключи, формулярът за изпращане остава на екрана, което ви позволява да стартирате приложението многократно. За да прекратите окончателно приложението, трябва да изберете елемента от менюто "Изход" (или да щракнете върху бутона по-долу).

Ако възникне грешка по време на изпълнение на приложение с формуляр за изпращане, информацията за грешката се показва в изходната област, която обикновено е скрита. Например, ако направите началния S-израз извикване на несъществуваща функция (неизвестен), тогава при изпълнение ще се появи изображението по-долу:


Използването на формуляра за изпращане ви позволява принудително да спрете приложението. За да направите това, използвайте елемента от менюто "Стоп" и бутона, разположен по-долу (както елементът от менюто, така и бутонът са активни само докато приложението работи). Ако, например, изчисляването на факториела на достатъчно голямо число е посочено като начален израз, тогава можете да видите елемента от менюто и бутона за спиране:


Ако натиснете "Стоп" по време на изпълнение, изпълнението на програмата се прекъсва:


Елементът от главното меню "Прозорци" на формата за изпращане (и съответният команден бутон) ще бъде активен, когато по време на изпълнение на приложението бъде създаден поне един графичен прозорец. Когато изберете елемента "Windows" (или щракнете върху бутона, разположен по-долу), се извиква графичният мениджър на прозорци.

Режимът за изграждане на EXE файлове с формуляр за изпращане е предназначен да улесни отстраняването на грешки в приложенията. Ако не използвате формуляра за изпращане, управлявайте графични прозорциСамият разработчик ще трябва да го направи и ако приложението замръзне, той ще трябва да използва диспечера на задачите на ОС, за да го премахне.

Ако трябва да промените стойността на който и да е параметър за настройка (размер на стека, брой токени и т.н.), трябва да щракнете върху желания ред в списъка "Параметри". Числовата стойност на съответния параметър ще бъде прехвърлена в областта за въвеждане, разположена под списъка:



Като втори пример за създаване на EXE файл, разгледайте предишния проблем (изчисляване GCD), но с прозоречен графичен интерфейс. За да направите това, създайте диалог (както е описано), върху формата на който ще поставим три етикета, три полета за въвеждане и два бутона. Нека зададем манипулираща процедура на един от бутоните, в която ще изчислим НОД на числата, въведени в първото и второто поле за въвеждане и ще въведем изчисления НОД в полето за резултат. Манипулаторът за щракване на втория бутон ще затвори и ще унищожи диалоговия прозорец. Диалоговият формуляр с контроли може да изглежда като този по-долу:


Програмен код, генериран от дизайнера, може да изглежда така:

(prog nil (dlgCreate "_Dlg_ 419 233 "Най-голям общ делител:") (dlgAddControl "_Dlg_ "_LBL_1 _LABEL 14 15 100 21 "("Tahoma" 14.25 1 0 0) "Първо:" 0 &H80000012 &H8000000F) ( dlgAddControl " _Dlg_ " _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) "Втори: " 0 &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 10 1 127 27 "("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 _БУТОН 24 148 180 50 "( "Tahoma" 8.25 1 0 0) "Изчисли") (dlgPutPicture "_BUT_1 7) (dlgAddControl "_Dlg_ "_BUT_2 _BUTTON 213 149 180 50 "("Tahoma" 8.25 1 0 0) "Затвори") (dlgPutPicture "_BUT_2 36) / / // CLICK манипулатор на събитие за бутона _BUT_2 // (defun _BUT_2_Click Nil (prog Nil (dlgHide "_DLG_) (dlgDestroy "_DLG_) (gc))) // // Цел на процедурата -events _BUT_2_Click контрол _BUT_2 // ( dlgSetEvent "_BUT_2 "_BUT_2_Click) // // CLICK манипулатор на събитие за бутона _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 "Грешка!!!")))) // // Присвояване на процедурата за събитие _BUT_1_Click control _BUT_1 // (dlgSetEvent " _BUT_1 "_BUT_1_Щракване) // // Показване на диалоговия прозорец _Dlg_ // (dlgShow "_Dlg_))

За да създадете EXE файл, трябва да заредите функция в средата на Lisp и да напишете начален израз за показване на диалоговия прозорец. Най-лесният начин е да „потопите“ горното ПРОГ- изграждане във функция ОСНОВЕНбез параметри. Тогава началният S-израз за изпълнение на EXE файла ще бъде повикването (основен). Така че, ако заредите следните функции в средата на Lisp:
// // Намиране на най-големия общ делител // (defun *gcd (x y) (cond ((eq x y) x) ((greaterp y x) (*gcd y x)) ((eq (остатък x y) 0) y) ( T (*gcd y (остатък x y)))) // // Програма за показване на диалогов прозорец _Dlg_ // (defun main nil (prog nil (dlgCreate "_Dlg_ 419 233 "Най-голям общ делител:") (dlgAddControl "_Dlg_ "_LBL_1 _LABEL 14 15 100 21 "("Tahoma" 14.25 1 0 0) "Първо:" 0 &H80000012 &H8000000F) (dlgAddControl "_Dlg_ "_TXT_1 _TEXT 155 13 248 31 "("Tahoma" 14 1 0 0) "" 0 & H800 00008 &H80000005) (dlgAddControl "_Dlg_ "_LBL_2 _LABEL 12 59 133 26 "("Tahoma" 14.25 1 0 0) "Второ:" 0 &H80000012 &H8000000F) (dlgAddControl "_Dlg_ "_TXT_2 _TEXT 156 56 7 31 "("Тахома" 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 _TEXT 157 98 247 31 "(" Тахома "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) "Затвори") (dlgPutPicture "_BUT_2 36) // // CLICK манипулатор на събитие за бутона _BUT_2 // (defun _BUT_2_Click Nil (prog Nil ( dlgHide "_DLG_) (dlgDestroy "_DLG_) (gc)) // // Присвояване на процедурата за събитие _BUT_2_Click към контролата _BUT_2 // (dlgSetEvent "_BUT_2 "_BUT_2_Click) // // CLICK манипулатор на събитие за бутона _BUT_1 // (defun _НО_1_Щракнете върху нула (prog (a1 a2) (setq a1 (str2fix (dlgGetText "_TXT_1))) (setq a2 (str2fix (dlgGetText "_TXT_2))) (TRY (dlgPutText "_TXT_3 (fix2str (*gcd a1 a2) )) ОСВЕН ( dlgPutText "_TXT_3 "Грешка!!!")))) // // Присвояване на процедурата за събитие _BUT_1_Click към контролата _BUT_1 // (dlgSetEvent "_BUT_1 "_BUT_1_Click) // // Показване на диалоговия прозорец _Dlg_ // (dlgShow "_Dlg_ ) ))

и след това изградете EXE файла gcd-2.exe, чрез настройка следните параметри:


Ще се получи напълно функционален EXE файл. Можете да го стартирате и да се уверите в това GCDсчита за правилно:

Преглед