Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Altri Linguaggi - COBOL
Forum - Altri Linguaggi - COBOL

Avatar
Lordip69 (Normal User)
Newbie


Messaggi: 6
Iscritto: 13/03/2017

Segnala al moderatore
Postato alle 9:13
Lunedì, 13/03/2017
Ciao, spero che qualcuno mi possa aiutare, dovrei riuscire a risolvere un problema ad una persona che utilizza una applicazione COBOL (Micro Focus Cobol Vers. 3.2.2) credo datata primi anni 90. Finora l'ha sempre fatta girare su PC con Windows XP dal quale lanciava un file batch. Il programma è sicuramente giurassico ma è complesso e funziona molto molto bene. Il guaio è che chiaramente non gira su PC dotati di windows 7 ...

Prima di decidere di realizzarne uno nuovo in sostituzione sto cercando di capire se posso riutilizzarlo in qualche modo anche con win 7. Ho provato a crearmi una emulazione di Xp a reinstallarmi tutta la cartella Cobol ed a lanciare l'eseguibile in modalità emulazione xp, il risultato è che si blocca non mi trova alcune librerie cobol.
Ho fatto la stessa cosa installando una DosBox-74 ovvero creando una emulazione Dos in Win 7 ma anche qui lo stesso problema.

Dovrei riuscire a capire se sbaglio io qualcosa oppure se l'emulazione Xp di Win 7 differisce in qualche modo da un PC su cui gira XP (dove gira tranquillamente). Mi rendo conto che l'argomento (visto che parliamo di Cobol) è di nicchia ma spero che ci sia qualcuno che possa consigliarmi. Grazie



PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 10:26
Lunedì, 13/03/2017
La prima soluzione che mi viene in mente è VMware con windows XP.

In questo modo puoi usare la tua applicazione COBOL senza dover rinunciare ad un sistema operativo più moderno, sia windows 7 (che ormai ha 9 anni!) che windows 10 o meglio ancora qualche derivata di ubuntu.

Altre soluzioni non ne vedo....

Giusto per curiosità... Sei sicuro che le librerie mancanti (a dire dell'eseguibile) siano presenti nel sistema?

PM Quote
Avatar
Lordip69 (Normal User)
Newbie


Messaggi: 6
Iscritto: 13/03/2017

Segnala al moderatore
Postato alle 10:46
Lunedì, 13/03/2017
Testo quotato

Postato originariamente da TheDarkJuster:

La prima soluzione che mi viene in mente è VMware con windows XP.

In questo modo puoi usare la tua applicazione COBOL senza dover rinunciare ad un sistema operativo più moderno, sia windows 7 (che ormai ha 9 anni!) che windows 10 o meglio ancora qualche derivata di ubuntu.

Altre soluzioni non ne vedo....

Giusto per curiosità... Sei sicuro che le librerie mancanti (a dire dell'eseguibile) siano presenti nel sistema?



Questo è il batch che utilizzano per lanciar il programma :

subst k: c:\Cobol
subst L: c:\Cqt
subst M: c:\Cqt\Skede
ERASE CQTDE.LBR
COPY k:\PGMS\CQTDE.LBR
k:\EXEDLL\XM k:\PGMS\CQTDE
ERASE CQTDE.LBR
PAUSE
subst k: /d
subst L: /d
subst M: /d

Non conosco il Cobol ma mi sembra di aver capito che tutto quello che serve è contenuto nella dir c:\Cobol (infatti lanciando il setup crea questa dir e sottodir e ci mette dentro tutto). Anche se provo a compilare mi dice che non trova il file COBCLI.LBR che però è presente nella sottodir LBR.
A questo punto vorrei fare la prova di trasportare la dir Cobol e Cqt su un mio vecchio PC XP e vedere se restituisce lo stesso errore. Il dubbio è che magari nei pc Xp dove gira siano state modificate delle variabile d'ambiente. Non so più cosa pensare ... essendo un argomento ormai molto vecchio è pure difficile trovare informazioni in rete. Grazie comunque

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 14:41
Lunedì, 13/03/2017
La modalita' "emulazione" di Windows non e' perfetta (anzi). Come ha detto TheDarkJuster, comincierei con un'installazione pristina di Windows XP usando una virtual machine (vmware, virtualbox).

Poi prendi nota degli eventuali errori che vengono visualizzati quando tenti di far partire il programma e postali qui.


Il mio blog: https://piero.dev
PM Quote
Avatar
Lordip69 (Normal User)
Newbie


Messaggi: 6
Iscritto: 13/03/2017

Segnala al moderatore
Postato alle 15:54
Mercoledì, 15/03/2017
Testo quotato

Postato originariamente da pierotofy:

La modalita' "emulazione" di Windows non e' perfetta (anzi). Come ha detto TheDarkJuster, comincierei con un'installazione pristina di Windows XP usando una virtual machine (vmware, virtualbox).

Poi prendi nota degli eventuali errori che vengono visualizzati quando tenti di far partire il programma e postali qui.



Allora ... per curiosità sono andato a trovare un vecchio pc portatile con Xp che avevo parcheggiato in mansarda. Sono riuscito a farlo partire, ho caricato la directory Cobol, ho lanciato il programma ed ho avuto come risultato lo stesso errore che mi è stato restituito in modalità emolazione xp sotto Win 7 ... ovvero non trova le librerie. Ho verificato e le librerie stanno tutte nella sottocartella LIB della cartella COBOL.

E' evidente che è un problema di settaggio di variabili d'ambiente, se non sbaglio il file autoexec.bat sotto xp non esiste più e bisogna settare le variabili direttamente in windows. Non mi rimane che andare a vedere che tipo di settaggio hanno i pc xp sui quali gira attualmente il programma ed eventualmente ricopiarmeli sul xp in emulazione e vedere che succede.

Nella cartella principale Cobol (quella che credo abbia creato con l'installazione) ho trovato un file con queste specifiche :

Installing for DOS and Windows
   ------------------------------
   DOS Autoexec.bat amendments

  include C:\COBOL\EXEDLL on PATH
  include C:\COBOL\LBR C:\COBOL\EXEDLL on COBDIR
  include C:\COBOL\SOURCE on COBCPY
  SET COBHNF=C:\COBOL\ON-LINE
  SET INCLUDE=C:\COBOL\INC
  SET LIB=C:\COBOL\LIB
  SET COBDEMO=C:\COBOL\DEMO





PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 16:09
Mercoledì, 15/03/2017
Puoi postare esattamente l'errore che ricevi?


Il mio blog: https://piero.dev
PM Quote
Avatar
Lordip69 (Normal User)
Newbie


Messaggi: 6
Iscritto: 13/03/2017

Segnala al moderatore
Postato alle 14:50
Giovedì, 16/03/2017
Testo quotato

Postato originariamente da pierotofy:

Puoi postare esattamente l'errore che ricevi?



Subito dopo che il batch lancia k:\exedll\xm k:\pgms\cqtde :

V1.4.6 - The Micro Focus DOS Extender Copyright <c> 1987-1994 Micro Focus Ltd
URN AXCPA/000071012         [Protocol: DPMI]
Cobol run library not installed - File not found


Ho provato a verificare sul pc con Xp dove il programma gira normalmente e le variabili ambiente di windows non hanno nulla di particolare mentre il file autoexec.nt è identico a quello presente nel portatile con Xp dove non gira. Non ne esco fuori ... l'estrema ratio è fare una virtualizzazione della macchina con VMware o VirtualBox anche se ormai è diventata una questione di principio.

Allego il file log relativo all'installazione dal quale si vede come modificava i famosi confing.sys e autoexec.bat.


Lordip69 ha allegato un file: MFINST32.zip (5036 bytes)
Clicca qui per scaricare il file

Ultima modifica effettuata da Lordip69 il 16/03/2017 alle 14:52
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 19:16
Giovedì, 16/03/2017
Se modifichi il tuo file batch cosi':

Testo quotato


SET COBDIR=C:\COBOL\LBR;C:\COBOL\EXEDLL;
SET LIB=C:\COBOL\LIB;
SET COBHNF=C:\COBOL\ON-LINE;
SET INCLUDE=C:\COBOL\INC;
SET COBCPY=C:\COBOL\SOURCE;
SET COBDEMO=C:\COBOL\DEMO;
SET MFORG=C:\COBOL\MFORG;

subst k: c:\Cobol
subst L: c:\Cqt
subst M: c:\Cqt\Skede
ERASE CQTDE.LBR
COPY k:\PGMS\CQTDE.LBR
k:\EXEDLL\XM k:\PGMS\CQTDE
ERASE CQTDE.LBR
PAUSE
subst k: /d
subst L: /d
subst M: /d



Che succede?

In alternativa, il problema potrebbe essere che usi XM per avviare il programma... se invece usi FORCEDOS?

Testo quotato


k:\EXEDLL\FORCEDOS RUN k:\PGMS\CQTDE



Il mio blog: https://piero.dev
PM Quote
Avatar
Lordip69 (Normal User)
Newbie


Messaggi: 6
Iscritto: 13/03/2017

Segnala al moderatore
Postato alle 13:21
Venerdì, 17/03/2017
Testo quotato

Postato originariamente da pierotofy:

Se modifichi il tuo file batch cosi':

Testo quotato


SET COBDIR=C:\COBOL\LBR;C:\COBOL\EXEDLL;
SET LIB=C:\COBOL\LIB;
SET COBHNF=C:\COBOL\ON-LINE;
SET INCLUDE=C:\COBOL\INC;
SET COBCPY=C:\COBOL\SOURCE;
SET COBDEMO=C:\COBOL\DEMO;
SET MFORG=C:\COBOL\MFORG;

subst k: c:\Cobol
subst L: c:\Cqt
subst M: c:\Cqt\Skede
ERASE CQTDE.LBR
COPY k:\PGMS\CQTDE.LBR
k:\EXEDLL\XM k:\PGMS\CQTDE
ERASE CQTDE.LBR
PAUSE
subst k: /d
subst L: /d
subst M: /d



Che succede?

In alternativa, il problema potrebbe essere che usi XM per avviare il programma... se invece usi FORCEDOS?

Testo quotato


k:\EXEDLL\FORCEDOS RUN k:\PGMS\CQTDE




La prima soluzione restituisce il solito errore di libreria non trovata, quella con FORCEDOS non riconosce il comando.

Ho provato ad utilizzare DOSBOX ed a settarne le opzioni facendo un MOUNT di K,L,M associandole rispettivamente a c:\cobol, c:\cqt, c:\cqt\skede) ed infine impostare la Path e le variabili come indicato nel precedente post. Probabilmente ho fatto un passo avanti perchè l'errore che mi restituisce dopo aver lanciato il batch :

ERASE CQTDE.LBR
COPY k:\PGMS\CQTDE.LBR
k:\PGMS\CQTDE
ERASE CQTDE.LBR

è il seguente :

Application did not execute
one or more of the following reasons may apply :
configuration file not found
initial program not specfied
application library/program not found

Executable Parameters:
configuration file = CQTDE.CFG
tag prefix             = CQTDE
tools library      = $COBDIR\TOOLS.lbr
application library = CQTDE.lbr

http://computer-programming-forum.com/48-cobol/9afb7618604 ...

In realtà il file CFG non esiste e non ho la minima idea di come venga creato. Ho provato a compilare il sorgente ma mi dice che non è presente la System security key (credo che sia la chiave che viene creata in fase d'installazione per garantire l'autenticità del sw).

Anche se un passo avanti è stato fatto ed il file adesso almeno parte ho deciso di arrendermi. Chiederò ai sistemisti di virtualizzare la macchina.

Grazie comunque.

PM Quote