Considereremo creazione.exe utilizzando la libreria di moduli py2exe. Ciò richiede Python 3.4 e sotto.
Se hai installato una versione superiore di Python, prova a utilizzare (sotto)
In questo esempio, esamineremo la creazione di un file .exe con un esempio Python3.4.
Prima di tutto, devi creare un ambiente virtuale per Python3.4. In questo esempio chiameremo myenv, puoi scegliere qualsiasi altro nome, ma non dimenticare di apportare le modifiche appropriate.
Digita i seguenti comandi nel terminale:
>py -3.4 -m venv myenv > myenv\Scripts\activate.bat
IN riga di comando apparirà il prefisso myenv, il che significa che l'ambiente virtuale denominato myenv è caricato. Tutte le squadre Pitone ora utilizzerà il nuovo ambiente virtuale.
Ora installiamo py2exe(https://pypi.python.org/pypi/py2exe~~HEAD=dobj) nel nostro ambiente virtuale:
> pip installa py2exeE infine, per creare un singolo file EXE, nel nostro ambiente virtuale eseguiamo il comando:
>python -m py2exe.build_exe ciao.py -c --bundle-files 0
(sostituire ciao.py al nome del tuo script. Se lo script si trova in un'altra cartella, è necessario utilizzare il percorso completo dello script, ad esempio C:\Projects\Python\ hello.py). Questo creerà una cartella DIST che contiene l'eseguibile. Per accesso veloce ad esso, digita nel terminale:
> esploratore dist
Vedrai il percorso della cartella in cui si trova il file EXE.
Nota: Una volta eseguita, una finestra si aprirà e scomparirà con la stessa rapidità con cui è apparsa.
Questo accade perché sistema operativo chiude automaticamente il terminale, in cui programma console finito.
Per cambiare questa situazione, puoi aggiungere la riga
alla fine del file Pitone. L'interprete attenderà l'input dell'utente e la finestra rimarrà aperta fino a quando l'utente non premerà il tasto Invio.
Puoi studiare l'utilizzo in dettaglio py2exe nella documentazione sulla pagina del modulo: https://pypi.python.org/pypi/py2exe
L'uscita dall'ambiente virtuale viene eseguita con il comando
> disattivare
Attraverso il comando Linea Windows installa pyinstaller:
> pip installa pyinstaller
Sulla riga di comando, vai alla cartella in cui si trova il file
Centro per la prevenzione e il controllo delle malattie:\...
Quindi alla riga di comando digitiamo il comando
Pyinstaller --onefile esempio.py
Invece di esempio.py utilizzare il nome del file da cui si desidera creare un file exe.
In un paio di minuti è tutto pronto! Molto probabilmente, il file exe si troverà nella sottocartella creata dist
Contenuto1.Come compilare EXE
1.1 Tecnologia di compilazione
Epigrafe:
"Oh sì Pushkin, oh sì..."
AS Pushkin
La tecnologia per compilare un EXE in Visual FoxPro è abbastanza semplice. Non saremo distratti da metodi così estremi come digitare comandi nella finestra di comando come COSTRUISCI PROGETTO, COSTRUISCI APP, COSTRUISCI EXE
, ma ci limiteremo alle comodità fornite dall'interfaccia grafica VFP.
Quindi, per creare un EXE, dobbiamo premere il pulsante nel project manager "COSTRUIRE...". Selezionando l'opzione nella finestra di dialogo che si apre Eseguibile Win32 / server COM (EXE)
premiamo OK. TUTTO. ;-)
"Come stanno tutti?" - chiedi - "E specificare con quale nome salvare il file?"
Sono d'accordo... Va specificato, altrimenti è tutto in malora.
A proposito, penso sia utile ricordarti che affinché il processo di compilazione vada a buon fine, devi riempire il project manager con i tuoi file di programma, uno dei quali deve essere main (nel project manager, il nome di questo file è in grassetto), ad es. file da eseguire per primo. Per impostazione predefinita, il primo file di programma (*.prg) o file di modulo (*.scx) incluso nel progetto è impostato come programma principale.
In generale, tutto è abbastanza semplice! Appena..?
Ora per i tristi...
1.2 File correlati
Epigrafe:
"... e lo accendi - non funziona!"
M. Zhvanetsky
Tutti i colpi di scena della fase di compilazione dell'applicazione sono già terminati e tu, orgoglioso della consapevolezza della tua superiorità sui comuni mortali, corri a passi da gigante dal cliente, installa la tua applicazione, descrivendogli contemporaneamente (il cliente) come andrà tutto bene ora, e contando nella tua mente di quale cazzone hai bisogno per comprare quello che rimarrebbe per la birra, all'improvviso ti imbatti nel fatto che il tuo programma super duper non fa storie. Triste. È un peccato. E, cosa più importante, non avrai un nuovo winchester o quello che avevi intenzione di acquistare lì per te a pagamento ...
Il fatto è che il file .exe da noi compilato non è un file eseguibile autosufficiente. Questo pseudo-eseguibile necessita di librerie di supporto (.dll) per funzionare correttamente. Non mi dilungherò molto su questo, ma mi limiterò a dare i nomi dei file necessari al normale funzionamento dell'applicazione.
In linea di principio, fino alla versione 6 inclusa, è possibile utilizzare lo standard Configurazione guidata, che prescrive tutto da solo, e in seguito - InstallShield(o altro programma di installazione).
Tutti i file seguenti sono il set minimo richiesto di file per varie versioni VFP (secondo):
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
Il set di librerie di cui sopra deve essere inserito nella directory del programma o nella directory di sistema di Windows. Per vari Versioni Windows queste directory sono diverse:
Win9x, WinMe c:\Windows\SYSTEM WinNT,Win2000,WinXP c:\Windows\SYSTEM32
2.Cosa devi includere in EXE
Epigrafe:
"Includere o non includere?"
elettricista ubriaco
Tutto quanto segue è l'opinione personale dell'autore, che puoi trascurare. Ma quando lo fai a modo tuo, ricorda: sbattere la testa contro un muro di cemento è molto più doloroso che approfittare della breccia fatta prima di te.
Per impostazione predefinita, il file .exe finito include tutti i file necessari per il funzionamento dell'applicazione: programmi, moduli, menu, librerie, classi, ecc. ad eccezione dei file di database e delle tabelle (tali file possono essere riconosciuti dal cerchio barrato accanto al nome del file nel project manager). Tutti i file inclusi nel file .exe diventeranno immodificabili (sola lettura) dopo la compilazione. È chiaro che i file di tabella (*.dbf) non dovrebbero essere inclusi perché sono soggetti a continue operazioni di modifica e aggiunta di dati, ma a volte ci sono casi in cui è necessario nascondere alcuni dati statici all'utente, ma fornire l'accesso ad essi dal programma stesso. Non c'è posto migliore degli "interni" di un file exe.
È anche abbastanza comune quando è necessario "trovare" o modificare temporaneamente il file di report o quando disponiamo di un intero set di report unici per ciascun utente. Bene, immagina davvero: dieci operatori e dieci report ciascuno, e tutto questo in *.exe. l'unica via d'uscita in questa situazione è escludere questi rapporti dal file finale e spedirli con l'applicazione.
In ogni caso, la decisione su quali file escludere e quali lasciare spetta a te.
Tutto, la birra è finita, dobbiamo andare in rosticceria.
Cordiali saluti, Vladislav Kulak
Contenuto:
In questo articolo imparerai come creare un semplice file EXE su un computer Windows, nonché come creare un contenitore exe che può essere utilizzato per eseguire il file eseguibile su un altro computer. I file EXE vengono utilizzati per installare programmi o aggiungere file a un computer in Controllo Windows. Per creare un file EXE, è necessario utilizzare l'utilità di sistema IExpress.
Sicuramente molti di voi almeno una volta nella vita si sono imbattuti in un archivio con estensione .exe, non rar o addirittura zip, ma exe. Il bello di questo archivio è che è autoestraente e non richiede l'installazione di programmi aggiuntivi. Molte persone pensano che per creare questo tipo di archivio siano necessarie alcune conoscenze o programmi specifici, ma mi permetto di assicurarvi che non è così. Gli archivi EXE vengono creati utilizzando uno dei numerosi archivi più popolari: WinRar e WinZip.
Probabilmente hai uno di questi due archiviatori installato sul tuo computer, quindi puoi tranquillamente iniziare subito a esercitarti. Se non esiste alcun archiviatore, puoi tranquillamente installare 7-zip, perché è gratuito e distribuito gratuitamente su Internet. Inizieremo con questo archiviatore.
E così, prepariamo una cartella con i file che devono essere archiviati e facciamo clic su di essa clic destro topi. Trovare un oggetto come 7-Zip
Abbiamo un altro sottomenu che si apre, da cui dobbiamo selezionare l'elemento "Aggiungi all'archivio..."
Si apre una finestra con noi, stiamo cercando la sezione "Opzioni", nella voce opzioni "Crea archivio SFX" gli mettiamo davanti un uccello. Ora prestiamo attenzione al campo più in alto, dov'è il nome del nostro futuro archivio. Abbiamo aggiunto l'estensione .exe. A proposito, il nome dell'archivio può essere modificato. Puoi anche specificare la posizione in cui desideri salvarlo. In linea di principio, puoi giocare con le altre opzioni, ma non influiscono sul tipo di archivio. È possibile impostare il livello di compressione massimo per mantenere la dimensione dell'archivio quanto più piccola possibile.
Ora puoi fare clic sul pulsante "OK".
Questo è il file che ho sul desktop:
Ora scopriamo come creare esattamente lo stesso archivio, ma con l'aiuto di WinRar.
Allo stesso modo, fare clic con il tasto destro sulla cartella e selezionare l'elemento "Aggiungi all'archivio":
Nella finestra che si apre, nella scheda "Generale", è necessario nella sezione "Opzioni di backup" metti un uccello davanti all'oggetto "Crea archivio SFX". Mettiamo qualsiasi metodo di compressione. Ho scelto Buono.
Fare clic sul pulsante "OK".
Questo è l'archivio risultante:
Qui abbiamo considerato diversi modi di come creare un archivio exe autoestraente.
E guarda anche un video sull'argomento:
Vota l'articolo:
homelisp(almeno nella versione proposta) non è in grado di compilare il codice Lisp nelle istruzioni del microprocessore. Pertanto, per creare file eseguibili autonomi, viene utilizzata una tecnologia che può essere provvisoriamente chiamata pseudo-exe.
L'essenza di questa tecnologia è la seguente.
In consegna homelisp include uno stub eseguibile che contiene il kernel homelisp. La dimensione di questo file è di circa duecento kilobyte. Quando si crea un file EXE, viene prima creata una copia del file stub con un nome specificato dallo sviluppatore. Tutte le ulteriori manipolazioni vengono eseguite con la copia creata, che chiameremo ulteriormente bersaglio file.
Supponiamo che uno sviluppatore abbia scritto e caricato un insieme di funzionalità che insieme compongono applicazione. Quando si crea un file EXE, tutte le funzioni scelte dallo sviluppatore vengono aggiunte alla "coda" del file di destinazione. Oltre a queste funzioni, la cosiddetta "coda" del file di destinazione è scritta. iniziare l'espressione S, nonché le impostazioni dell'ambiente definite dall'utente homelisp(dimensioni degli stack interni, numero di oggetti dinamici, ecc.)
Quando il file di destinazione viene avviato, il controllo viene prima ricevuto dal programma di inizializzazione del kernel homelisp, che quindi legge tutte le funzioni salvate dall'utente dal file e le carica nell'ambiente Lisp. Successivamente, il controllo riceve il blocco espressione S iniziale, e il programma fornito dallo sviluppatore inizia ad essere eseguito.
Consideriamo il processo di creazione di un file EXE utilizzando un semplice esempio pratico: creeremo un programma di dialogo che calcolerà massimo comun divisore due numeri interi utilizzando l'algoritmo di Euclide. Questo esempio non è così inutile: poiché homelisp funziona con numeri interi di bitness illimitato, scrivere un esempio simile in qualsiasi ambiente di programmazione comune (VB, C ++, Delphi) richiederebbe uno sforzo notevole ...
Funzione *GCD ha la seguente forma:
(defun *mcd (x y) (cond ((eq x y) x) ((greaterp y x) (*mcd y x)) ((eq (resto x y) 0) y) (T (*mcd y (resto x y))) )) ==> *mcd (*mcd 655 72) ==> 1 (*mcd 655 75) ==> 5 (*mcd 65536 4096) ==> 4096 |
Richiesta (tramite function CHIEDERE) il primo operando;
Richiesta del secondo operando;
Calcolo del risultato;
Visualizzazione del risultato con una funzione DIRE ;
Scriviamo un'espressione che definisce la funzione MCD-1, che implementerà l'algoritmo di cui sopra:
(defun GCD-1 nil (prog (a1 a2) (setq a1 (str2fix (Ask "Enter first operand"))) (setq a2 (str2fix (Ask "Enter second operand"))) (TRY (say (fix2str (* gcd a1 a2))) EXCEPT (dire "Errore!")))) |
Inoltre, poiché è in preparazione un programma interattivo destinato all'utente finale, è opportuno provvedere possibili errori. Ecco perché viene eseguito il calcolo del massimo comune divisore pezzo critico di codice con una chiamata di funzione TENTATIVO Se il calcolo fallisce, il programma non va in "crash", ma viene visualizzato il messaggio "Error!".
Se esegui la funzione MCD-1 dall'ambiente di sviluppo, verrà visualizzata per prima la finestra di query per il primo operando:
Ora costruiamo in base alla funzione di debug MCD-1 eseguibile. Per fare ciò, mentre sei nell'ambiente di sviluppo, seleziona la voce del menu principale EXE oppure fare clic sul pulsante della barra degli strumenti con la seguente icona:
Imposta il nome del file EXE. Il nome (e il percorso) del futuro file EXE è specificato nel campo di input combinato nell'angolo in alto a sinistra del modulo di creazione del file EXE. Il nome e il percorso possono essere impostati manualmente oppure è possibile fare clic sul pulsante "..." e selezionare la directory e il nome utilizzando la finestra di dialogo standard Salva come. Il file viene creato per impostazione predefinita. noname.exe nella directory corrente.
Nell'area di ingresso "Avvio dell'espressione S"è necessario specificare il codice da cui inizierà l'esecuzione della futura applicazione. L'espressione S iniziale può essere una chiamata di funzione. Se si desidera specificare un'espressione S iniziale composta da più chiamate, queste chiamate devono essere "racchiuse" in PROG- progetto.
I passaggi precedenti sono il minimo richiesto. Inoltre, l'utente può inoltre eseguire le seguenti operazioni:
Nell'elenco intitolato "Funzioni, costanti, variabili", deselezionare le caselle di controllo per gli oggetti che non sono necessari per eseguire l'applicazione. Questo evento aumenterà leggermente la velocità di esecuzione dell'applicazione;
Modificare i valori delle impostazioni nell'elenco situato nell'angolo in alto a destra. La sequenza di azioni durante la sostituzione dei valori dei parametri sarà descritta di seguito;
Deseleziona la casella "Mostra modulo dispatcher all'avvio". Se questa casella di controllo viene lasciata selezionata, all'avvio dell'applicazione verrà visualizzato un file special sala di controllo modulo. A questo modulo può essere assegnato un titolo (nel campo di input corrispondente). L'uso del modulo di invio è utile durante il debug.
Seleziona o deseleziona "Avvisami quando completato". Se questa casella è selezionata, verrà visualizzato un messaggio prima che l'applicazione venga chiusa.
La finestra per la creazione di un file EXE con il set di parametri minimo richiesto potrebbe essere simile a questa:
Successivamente, è necessario fare clic sul pulsante con il segno di spunta verde. Se il file EXE ordinato esiste già, homelisp Verrà richiesto di confermare che il file verrà sovrascritto o di impostare un nuovo nome. Dopodiché, alle completamento avvenuto con successo, viene visualizzato il seguente messaggio:
Puoi assicurarti che un file EXE sia apparso nella directory corrente gcd-1.exe, all'inizio del quale si verifica il dialogo descritto con l'utente.
Se, durante la creazione di un file EXE, seleziona la casella "Visualizza modulo dispatcher all'avvio" e imposta il titolo del modulo:
Quindi, quando viene eseguito il file EXE risultante, nell'angolo in alto a destra dello schermo viene visualizzato un modulo dispatcher del seguente modulo:
Quando si seleziona la voce di menu Start (o si preme il pulsante appropriato in basso), l'applicazione viene avviata. Al termine dell'applicazione, il modulo dispatcher rimane sullo schermo, consentendo all'applicazione di essere avviata più volte. Per completare l'applicazione selezionare la voce di menu "Esci" (oppure premere il pulsante sottostante).
Se si verifica un errore durante l'esecuzione dell'applicazione con il modulo dispatcher, le informazioni sull'errore vengono visualizzate nell'area di output, che normalmente è nascosta. Ad esempio, se imposti l'espressione S iniziale come una chiamata a una funzione inesistente (sconosciuto), quindi quando eseguito, apparirà la seguente immagine:
L'utilizzo del modulo dispatcher consente di interrompere forzatamente l'esecuzione dell'applicazione. Per fare ciò, utilizzare la voce di menu "Stop" e il pulsante situato in basso (sia la voce di menu che il pulsante sono attivi solo mentre l'applicazione è in esecuzione). Se imposti, ad esempio, il calcolo del fattoriale di un numero sufficientemente grande come espressione di partenza, allora puoi vedere la voce di menu e il pulsante stop:
Se si preme "Stop" durante l'esecuzione, l'esecuzione del programma viene interrotta:
La voce del menu principale "Finestre" del form di invio (e il relativo pulsante di comando) sarà attiva se durante l'esecuzione dell'applicazione viene creata almeno una finestra grafica. Quando si seleziona "Windows" (o si fa clic sul pulsante in basso), viene richiamato il gestore di finestre grafiche.
La modalità di creazione di file EXE con un modulo dispatcher è progettata per facilitare il debug dell'applicazione. Se non si utilizza il modulo dispatcher, lo sviluppatore stesso dovrà gestire le finestre grafiche e, in caso di applicazione "sospesa", per rimuoverla sarà necessario utilizzare il task manager del sistema operativo.
Se è necessario modificare il valore di qualsiasi parametro di impostazione (dimensione dello stack, numero di token, ecc.), è necessario fare clic sulla riga richiesta nell'elenco "Parametri". Il valore numerico del parametro corrispondente verrà trasferito nell'area di immissione sotto l'elenco:
COME secondo esempio di creazione di un file EXE, si consideri il problema precedente (calcolo GCD), ma con una GUI con finestre. Per fare ciò, creeremo una finestra di dialogo (come descritto), sulla cui scheda posizioneremo tre etichette, tre campi di input e due pulsanti. Assegniamo una procedura di gestione a uno dei pulsanti, in cui calcoliamo il MCD dei numeri inseriti nel primo e nel secondo campo di input e inseriamo il MCD calcolato nel campo del risultato. Il secondo gestore di clic del pulsante chiuderà e distruggerà la finestra di dialogo. Il modulo di dialogo con i controlli potrebbe essere simile al seguente:
Il codice generato dal designer potrebbe essere simile al seguente:
(prog nil (dlgCreate "_Dlg_ 419 233 "Massimo comune divisore:") (dlgAddControl "_Dlg_ "_LBL_1 _LABEL 14 15 100 21 "("Tahoma" 14.25 1 0 0) "Primo:" 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.25 1 0 0) "Secondo : " 0 &H80000012 &H8000000F ) (dlgAddControl "_Dlg_ "_TXT_2 _TEXT 156 56 247 31 "("Tahoma" 14 1 0 0) "" 0 &H80000008 &H80000005) (dlgAddControl "_Dlg_ "_LBL_3 _ LABEL 13 101 127 27 "("Tahoma" 14, 25 10 0) "Н.О.Д." 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 148 180 50 "("Tahoma" 8.25 1 0 0) "Compute") (dlgPutPicture "_BUT_1 7) (dlgAddControl "_Dlg_ "_BUT_2 _BUTTON 213 149 180 50 "("Tahoma" 8.25 1 0 0) "Close") (dlgPutPicture " _BUT_2 36) // // gestore dell'evento CLICK per il pulsante _BUT_2 // (defun _BUT_2_Click Nil (prog Nil (dlgHide "_DLG_) (dlgDestroy "_DLG_) (gc))) // // Scopo della procedura -events _BUT_2_Click to control _BUT_2 // (dlgSetEvent "_BUT_2 "_BUT_2_Click) // // gestore dell'evento CLICK per il pulsante _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 "Error!!!")))) // // Destinazione del controllo procedura evento _BUT_1_Click _BUT_1 // (dlgSetEvent "_BUT_1 "_BUT_1_Click) // // Visualizza la finestra di dialogo _Dlg_ // (dlgShow "_Dlg_)) |
// // Trovare il massimo comune divisore // (defun *mcd (x y) (cond ((eq x y) x) ((greaterp y x) (*mcd y x)) ((eq (resto x y) 0) y) ( T (*gcd y (resto x y))))) // // Programma di visualizzazione della finestra di dialogo _Dlg_ // (defun main nil (prog nil (dlgCreate "_Dlg_ 419 233 "Massimo comune divisore:") (dlgAddControl "_Dlg_ "_LBL_1 _LABEL 14 15 100 21 "("Tahoma" 14.25 1 0 0) "Primo:" 0 &H80000012 &H8000000F) (dlgAddControl "_Dlg_ "_TXT_1 _TEXT 155 13 248 31 "("Tahoma" 14 1 0 0) "" 0 &H8000 0 008&H80000005) ( dlgAddControl "_Dlg_ "_LBL_2 _LABEL 12 59 133 26 "("Tahoma" 14.25 1 0 0) "Secondo: "0 &H80000012 &H8000000F) (dlgAddControl "_Dlg_ "_TXT_2 _TEXT 156 56 247 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 "_Dlg_ "_ TXT_3_TEX T 157 98 247 31 "("Tahoma" 14 1 0 0) "" 0 &HFF &H80000005) (dlgAddControl "_Dlg_ "_BUT_1 _BUTTON 24 148 180 50 "("Tahoma" 8.25 1 0 0) "Compute") (dlgPutPicture " _BUT_1 7) (dlgAddControl "_Dlg_ "_BUT_2 _BUT TON 213 149 180 50 "("Tahoma" 8,25 1 0 0) "Close") (dlgPutPicture "_BUT_2 36) // // Gestore dell'evento CLICK per il pulsante _BUT_2 // (defun _BUT_2_Click Nil (prog Nil (dlgHide "_DLG_) (dlgDestroy "_DLG_) (gc))) // // Assegnazione della procedura di evento _BUT_2_Click al controllo _BUT_2 // (dlgSetEvent "_BUT_2 "_BUT_2_Click) // // Gestore di evento CLICK per il pulsante _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 "Errore !!!")))) // // Assegnazione della procedura di evento _BUT_1_Click al controllo _BUT_1 // (dlgSetEvent "_BUT_1 "_BUT_1_Click) // // Visualizzazione della finestra di dialogo _Dlg_ // (dlgShow "_Dlg_ ))) |
Funzionerà file EXE perfettamente funzionante. Puoi eseguirlo e assicurarti che GCD considerato corretto: