Entra nella Libreria GIOBE.TPU

 Scheda  

RUNTIME ERROR 200 [2 di 2]  

      
      Soluzione del Problema:  Come eliminare l'errore
    
bullet

Molti sviluppatori si sono dedicati alla risoluzione del problema offrendo in rete numerosi patch da applicare di solito sugli eseguibili ottenuti dalla compilazione in ambiente TP, ma anche per risolvere il problema in fase di scrittura del programma.

bullet

La soluzione migliore è però quella di sostituire la procedura Delay della CRT con una nuova di zecca, priva del "peccato originale"; la CRT è per altro inclusa nelle Run Time Library Turbo.TPL e TPP.TPL, solo in alcuni casi disponibili in forma adatta ad evitare la segnalazione d'errore.

bullet

Non bisogna dimenticare che sia il problema che le sue soluzioni sono precari: il primo non sempre si manifesta (non tutti gli ambienti TP soffrono l'errore runtime), mentre le seconde non possono ritenersi attendibili al 100 %.

     

Suggerimento Prima di applicare qualunque patch è, per altro, sempre conveniente cercare di reinstallare l'Ambiente Turbo Pascal, a partire da un pacchetto sorgente diverso, per liberarsi del problema alla radice.
Naturalmente se, durante la compilazione di un programma PAS, non viene segnalato alcun errore, le modifiche non sono necessarie.

      

bullet

Se non hai deciso di sostituire la versione Turbo Pascal in tuo possesso (cosa sconsigliata) puoi tentare con i seguenti consigli.

 
      I Link e i Patch:  Se si dispone del codice sorgente e del Compilatore TP7
  
bullet NewDelay (Scarica NewDelay.PAS e/o NewDelay.TPU)
bulletSi tratta di una Unit che contiene una versione corretta della Delay originale della CRT, sulla quale per altro è parzialmente basata.
bulletè di proprietà di Frank Heckenbach che l'ha pubblicata il 29 settembre 1997.
bulletl'utilizzo è libero, escluse le applicazioni commerciali; ed è comunque fornito senza alcuna garanzia e senza assunzione di responsabilità per danni eventualmente arrecati dal suo uso.
bulletla fase di inizializzazione della nuova Delay è eseguita solo la prima volta che viene chiamata: ciò comporta una piccola inesattezza sul tempo di ritardo (ma solo la prima volta); conviene quindi fare comunque una finta chiamata all'inizio del programma, per evitare alle prossime questa inesattezza.
bulletè in grado di prevenire l'errore utilizzando per il quoziente un un registro a 32 bit (longint), al posto di quello a 16 bit (word).
bulletintercetta l'errore prima che venga segnalato, saltandone gli effetti ed evitando al programma di essere interrotto.
bulletper il suo utilizzo è necessario:
bulletaggiungere la nuova Unit NewDelay.TPU alle altre, nella cartella delle unit standard o nella cartella nella quale si sta scrivendo il sorgente PAS che si vuole compilare.
bulletaggiungere, dopo la direttiva USES, la voce NewDelay, facendo in modo che appaia come la prima, e comunque davanti alla CRT (come seconda) e tutte le altre eventuali librerie.
bulletla prima istruzione del programma deve essere PatchCrt (Crt.Delay);
bulletricompilare il programma sorgente.
  
bulletrDelay (Scarica rDelay.PAS e/o NewDelay.TPU)
bullet Si tratta di una Unit che provvede a modificare direttamente l'eseguibile mentre sta girando in memoria.
bulletè di proprietà di Roger E. Donais che l'ha pubblicata il 13 gennaio 1997.
bulletl'utilizzo è libero, escluse le applicazioni commerciali; ed è comunque fornito senza alcuna garanzia e senza assunzione di responsabilità per danni eventualmente arrecati dal suo uso.
bulletin pratica è progettata per disabilitare la fase di inizializzazione della Delay originale della CRT.
bulletil patch è fatto per lavorare al tempo di esecuzione (run time) per non distruggere la compatibilità con la CRT originale e forzare il codice che richiede la Delay originale della CRT verso il codice corretto offerto da questa unità.
bulletper il suo utilizzo è necessario:
bulletaggiungere la nuova Unit rDelay.TPU alle altre, nella cartella delle unit standard o nella cartella nella quale si sta scrivendo il sorgente PAS che si vuole compilare
bulletaggiungere, dopo la direttiva USES, la voce rDelay, facendo in modo che appaia come la prima, e comunque davanti alla CRT (come seconda) e tutte le altre eventuali librerie.
      
bulletT7TpLfix (Scarica T7TpLfix.ZIP)
bulletSi tratta di una patch chiamata a correggere direttamente le Run Time Library (Turbo.TPL di Turbo Pascal 7 e TPP.TPL di Borland Pascal) evitando la segnalazione dell'errore
bulletè di proprietà di Klaus Hartnegg che l'ha pubblicata il 25 maggio 1999.
bulletl'utilizzo è libero, escluse le applicazioni commerciali; ed è comunque fornito senza alcuna garanzia e senza assunzione di responsabilità per danni eventualmente arrecati dal suo uso.
bulletin pratica è progettata per disabilitare la fase di inizializzazione della Delay originale della CRT.
bulletil patch è fatto per lavorare al tempo di esecuzione (run time) per non distruggere la compatibilità con la CRT originale e forzare il codice che richiede la Delay originale della CRT verso il codice corretto offerto da questa unità.
bulletper il suo utilizzo è necessario:
bulletbisogna far girare t7tplfix.exe direttamente nella cartella che contiene Turbo.TPL (di solito c:\lin\tp7\bin), premendo P per confermare l'azione correttiva; verrà creato un nuovo file Turbo.TPL e la copia originale sarà rinominata Turbo.OLD.
bulletla stessa cosa si farà se si dispone della versione Borland Pascal: verrà creato un nuovo file TPP.TPL e la copia originale sarà rinominata TPP.OLD.
bulletdopo l'applicazione sarà sufficiente ricompilare i nostri sorgenti PAS, e i problemi d'errore dovrebbero essere risolti.
bulletse il programma segnala che non riesce ad eseguire la patch potrebbe essere necessario modificare gli attributi delle 2 TPL, probabilmente entrambi files a sola lettura.
     
      I Link e i Patch:  Se NON si dispone del codice sorgente, ma solo dei files compilati
   
bulletTpPatch (Scarica TpPatch.ZIP)
bulletSi tratta di una patch che interviene direttamente sul programma EXE compilato con Turbo Pascal, localizzando e correggendo in esso la parte di codice che produce l'errore.
bulletda notare che l'applicazione della patch potrà accelerare la procedura di ritardo su computer veloci, per cui se sono necessari tempi di ritardo precisi le modifiche apportate possono fare più danno che aiuto.
bulletil programma di correzione fa posto per le istruzioni aggiuntive, sostituendo il codice originale con uno più corto, funzionalmente equivalente.
bulletè di proprietà di Andreas Bauer che l'ha pubblicata il 27 dicembre 1996.
bulletl'utilizzo è libero, escluse le applicazioni commerciali; ed è comunque fornito senza alcuna garanzia e senza assunzione di responsabilità per danni eventualmente arrecati dal suo uso.in 
bulletper il suo utilizzo è sufficiente eseguite il comando: TpPatch mioprog.exe.
    
bulletTp7p5fix (Scarica Tp7p5fix.ZIP)
bulletSi tratta di un programma TSR che blocca l'errore mentre il programma parte.
bulletle temporizzazione generate non sono particolarmente precise.
bulletnon opera alcuna modifica ai files EXE che si accinge a proteggere dall'errore
bulletè di proprietà di Marek Futrega  che l'ha pubblicata il 11 luglio 1998.
bulletl'utilizzo è libero, escluse le applicazioni commerciali; ed è comunque fornito senza alcuna garanzia e senza assunzione di responsabilità per danni eventualmente arrecati dal suo uso.
bulletper il suo utilizzo è necessario installare il tsr, Tp7p5fix.com, prima di mettere in esecuzione gli eseguibili EXE.

     

Pagina Precedente Tempo Data & Ora     RunTime Error 200 Lezioni - Vai al DownLoad dei files DOC Torna al Menu "Libreria GIOBE.TPU"
Scheda

    

PASCAL  »

Libreria Giobe | Librerie Standard | Allegati | Applicazioni | Info | Download
PROCEDURE  »   Caratteri | Mouse | Tastiera | Tempo, Data & Ora
Box | Cornici | Cursore | Aree a Riga Intera | Aree a Schermo Totale
FUNZIONI  »   Caratteri | Mouse | Tastiera | Tempo, Data & Ora
Home 
Pascal|Manuali|Tabelle|Schede
Tutorial Assembly|Palestra Assembler
Aggiungi Giobe®2000 ai preferiti  
Motore
Ricerca
  Rendi Giobe®2000 pagina di Default
© 2001-2010  -  Studio Tecnico ing. Giorgio OBER
Tutti i diritti sono riservati