Oppure

Loading
13/03/17 8:13
Lordip69
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


aaa
13/03/17 9:26
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?
aaa
13/03/17 9:46
Lordip69
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
aaa
13/03/17 13:41
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.
Il mio blog: piero.dev
15/03/17 14:54
Lordip69
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




aaa
15/03/17 15:09
pierotofy
Puoi postare esattamente l'errore che ricevi?
Il mio blog: piero.dev
16/03/17 13:50
Lordip69
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.
Ultima modifica effettuata da Lordip69 16/03/17 13:52
aaa
16/03/17 18:16
pierotofy
Se modifichi il tuo file batch cosi':

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?

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


supportline.microfocus.com/kbdocs/…
Il mio blog: piero.dev