Ricompilare le librerie FWH

Moderator: Enrico Maria Giordano

aerrigo
Posts: 24
Joined: Wed Oct 18, 2006 9:50 am
Location: Bari - Italy
Contact:

Ricompilare le librerie FWH

Post by aerrigo »

In fase di esecuzione di EXE non vengono visualizzate le icone.

Mi è stato detto di ricompilare le librerie FWH, cosa che è stata fatta (è stata ricompilata la libreria \FWH\LIB\fivehx.lib) ma il problema persiste.

Qualcuno sà darmi una mano ed al limite fornirmi le istruzioni ed i file .BAT per ricompilarle.

Grazie, Andrea.
Andrea Errigo
info@andreaerrigo.it
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Re: Ricompilare le librerie FWH

Post by Enrico Maria Giordano »

aerrigo wrote:In fase di esecuzione di EXE non vengono visualizzate le icone.
Spiegati meglio, che intendi dire? Magari con due righe di PRG compilabile che mostrino il problema sarebbe più facile aiutarti.

EMG
aerrigo
Posts: 24
Joined: Wed Oct 18, 2006 9:50 am
Location: Bari - Italy
Contact:

Post by aerrigo »

PROCEDURE main()

LOCAL oBar

SET DATE british
SET EPOCH TO 1940
SET DATE FORMAT "dd/mm/yyyy"
SET DELETED on
SET DECIMAL TO 2

DEFINE WINDOW oWnd ;
TITLE "Test" ;
ICON "geoage" ;

MENU Buildmenu()

SET MESSAGE OF oWnd TO "" ;
TIME ;
DATE ;
KEYBOARD


oMsg:=oWnd:oMsgBar

DEFINE BUTTONBAR oBar OF oWnd 3DLOOK ;
SIZE 46,46

DEFINE BUTTON NAME "UTENTI" OF oBar TOOLTIP "Utenti" ;
NOBORDER ;
ACTION Utenti()

DEFINE BUTTON NAME "AZIENDE" OF oBar TOOLTIP "Prova" ;
NOBORDER ;
ACTION nil

DEFINE BUTTON NAME "COMUNI" OF oBar TOOLTIP "Prova2" ;
NOBORDER ;
ACTION nil

DEFINE BUTTON NAME "ANAZIE" OF oBar TOOLTIP "Prova3" ;
NOBORDER ;
ACTION nil

DEFINE BUTTON NAME "uscita" OF oBar TOOLTIP "Termina il programma" ;
NOBORDER ;
GROUP ;
ACTION oWnd:End()

ACTIVATE WINDOW oWnd MAXIMIZED VALID If( MsgYesNo( "Sei sicuro di voler chiudere Test ?","Avvertenza"), .T., .F. ) ;
ON PAINT ( FillBlue( oWnd ), Sfondo( hDc, oWnd ) )

RETURN

----EOF MAIN.PRG

Il problema è che il codice sopra riportato punta ad un .RES esterno e compilato su un PC, le icone si vedono, su un'altra macchina quando si clicca sull'icona Utenti viene restituito il seguente errore :


Application
===========
Path and name: G:\FWH\XXXX\p.exe (32 bits)
Size: 1,510,400 bytes
Time from start: 0 hours 0 mins 2 secs
Error occurred at: 31/10/2006, 12:36:37
Error description: Error FiveWin/3 Cannot create Dialog Box:
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿResource: UTENTI

Stack Calls
===========
Called from CREATEDLGERROR(0)
Called from TDIALOG:ACTIVATE(0)
Called from UTENTI(50)
Called from (b)MAIN(38)
Called from TBTNBMP:CLICK(0)
Called from TBTNBMP:LBUTTONUP(0)
Called from TWINDOW:HANDLEEVENT(0)
Called from TBTNBMP:HANDLEEVENT(0)
Called from _FWH(0)
Called from WINRUN(0)
Called from TWINDOW:ACTIVATE(0)
Called from MAIN(61)

Il programma UTENTI.PRG è indicato di seguito :

#include "fivewin.ch"

Function Utenti()
LOCAL oDlg,oLbx
LOCAL cLbx,nRec,lCanc

USE UTENTI NEW

INDEX ON UTENTI->UTE_DES TO UTENTI

DEFINE DIALOG oDlg RESOURCE "UTENTI" TITLE "Utenti"

oDlg:lHelpIcon := .f.
lCanc := .F.
nRec := Lastrec()


REDEFINE LISTBOX oLbx var cLbx ;
FIELDS UTENTI->UTE_COD,UTENTI->UTE_DES,UTENTI->UTE_PWD,UTENTI->UTE_AZI ;
HEADERS "UTE_COD", "UTE_DES","UTE_PWD","UTE_AZI" ;
FIELDSIZES 80, 150,100,10 ;
ID 101 OF oDlg

oLbx:aJustify = { .f., .f.,.f.,.f.}
oLbx:lFocused := .T.

REDEFINE BUTTON ID 201 OF oDlg ;
ACTION NuovoUtente(oLbx)

REDEFINE BUTTON ID 202 OF oDlg ;
ACTION SchedaUtenti(oLbx)

REDEFINE BUTTON ID 203 OF oDlg ;
ACTION CercaUtent( oLbx )

REDEFINE BUTTON ID 204 OF oDlg ;
WHEN nRec > 0 ;
ACTION ( If( MsgYesNo("Elimino l'utente in evidenza?", "Avvertenza!"), ;
( UTENTI->( Elimina(oLbx) ), ;
lCanc:=.T.), ;
oLbx:SetFocus() ))

REDEFINE BUTTON ID 205 OF oDlg ;
ACTION oDlg:End()


ACTIVATE DIALOG oDlg CENTER


CLOSE UTENTI

Return Nil
Function SchedaUtenti(oLbx)


Ciao, Andrea.
Andrea Errigo
info@andreaerrigo.it
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Post by Enrico Maria Giordano »

aerrigo wrote:Il problema è che il codice sopra riportato punta ad un .RES esterno
Un .RES non può essere esterno, deve per forza essere inglobato nell'EXE. Solo una DLL può essere esterna. Controlla che nell'EXE ci siano le risorse aprendolo con il Resource Workshop o altro editor di risorse.

EMG
aerrigo
Posts: 24
Joined: Wed Oct 18, 2006 9:50 am
Location: Bari - Italy
Contact:

Post by aerrigo »

EnricoMaria wrote:
aerrigo wrote:Il problema è che il codice sopra riportato punta ad un .RES esterno
Un .RES non può essere esterno, deve per forza essere inglobato nell'EXE. Solo una DLL può essere esterna. Controlla che nell'EXE ci siano le risorse aprendolo con il Resource Workshop o altro editor di risorse.

EMG
Si scusa, le risorse sono nel .EXE, ed in effetti aprendo i 2 .EXE in quello che non visualizza le icone, non c'è praticamente niente.

Sai dirmi cosa posso controllare poichè "a prima vista" l'ambiente è identico, solo che su un PC c'è Win XP e sull'altro Win 2000 PRO, l'unica differenza mi sembra questa.

Ciao, Andrea.
Andrea Errigo
info@andreaerrigo.it
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Post by Enrico Maria Giordano »

La versione di Windows non fa alcuna differenza. Devi controllare il batch di compilazione e in particolare il punto in cui il linker inserisce le risorse nell'EXE.

EMG
aerrigo
Posts: 24
Joined: Wed Oct 18, 2006 9:50 am
Location: Bari - Italy
Contact:

Post by aerrigo »

EnricoMaria wrote:La versione di Windows non fa alcuna differenza. Devi controllare il batch di compilazione e in particolare il punto in cui il linker inserisce le risorse nell'EXE.

EMG
Il file per linkare è questo :
@ECHO OFF
CLS

rem set paths

IF "%BOCC%"=="" SET BOCC=d:\Fwh\bcc55
IF "%ROOT%"=="" SET ROOT=d:\Fwh

IF exist %1.exe del %1.exe

REM linka

%BOCC%\bin\ilink32 -Gn -Tpe -aa -L%BOCC%\lib; @Flink32.bc

e il Flink32.bc è questo :

c0w32.obj +
@ListObjs.rsp, +
p.exe, +
p.map, +
@ListLibs.rsp,
p.res

Fra l'altro sono gli stessi che stanno sul'altro PC.

Ciao, Andrea.
Andrea Errigo
info@andreaerrigo.it
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Post by Enrico Maria Giordano »

La sintassi non mi sembra corretta (non ci vuole il punto e virgola dopo il percorso delle librerie e tra la lista delle librerie e il RES c'è il parametro opzionale deffile) però se dici che sull'altro PC funziona...

Magari prova a portare tutto (ma proprio tutto) l'ambiente da un PC all'altro e vedi se funziona.

Altro non mi viene in mente.

EMG
aerrigo
Posts: 24
Joined: Wed Oct 18, 2006 9:50 am
Location: Bari - Italy
Contact:

Post by aerrigo »

EnricoMaria wrote:La sintassi non mi sembra corretta (non ci vuole il punto e virgola dopo il percorso delle librerie e tra la lista delle librerie e il RES c'è il parametro opzionale deffile) però se dici che sull'altro PC funziona...

Magari prova a portare tutto (ma proprio tutto) l'ambiente da un PC all'altro e vedi se funziona.

Altro non mi viene in mente.

EMG
Ora nel file L.bat è così :
%BOCC%\bin\ilink32 -Gn -Tpe -aa -L%BOCC%\lib @Flink32.bc

A quale parametro opzionale ti riferisci ?

Ciao, Andrea.
Andrea Errigo
info@andreaerrigo.it
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Post by Enrico Maria Giordano »

deffile. Dalla documentazione:
ILINK32 [@respfile][options] startup myobjs, [exe], [mapfile], [libraries], [deffile], [resfile]
EMG
aerrigo
Posts: 24
Joined: Wed Oct 18, 2006 9:50 am
Location: Bari - Italy
Contact:

Post by aerrigo »

EnricoMaria wrote:deffile. Dalla documentazione:
ILINK32 [@respfile][options] startup myobjs, [exe], [mapfile], [libraries], [deffile], [resfile]
EMG
Si, scusa avrai notato che non sono una scheggia.

Ma da qualche parte non c'è una documentazione di riferimento ?

Grazie, Andrea.
Andrea Errigo
info@andreaerrigo.it
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Post by Enrico Maria Giordano »

Sì, certo. E' appunto da quella che ho tratto la sintassi che ti ho citato. La puoi scaricare dal sito della Borland. Oppure mi scrivi in privato e te la mando io.

EMG
aerrigo
Posts: 24
Joined: Wed Oct 18, 2006 9:50 am
Location: Bari - Italy
Contact:

Compilazione Librerie

Post by aerrigo »

Caro Enrico,

volevo ringraziarti, ho risolto il problema.

Sinceramente non ho ancora capito come perchè ho fatto tante prove.

Appena ne vengo a capo lo pubblico, così se qualcuno ne ha bisogno potrà trovarlo qui.

Grazie ancora, Andrea.
Andrea Errigo
info@andreaerrigo.it
aerrigo
Posts: 24
Joined: Wed Oct 18, 2006 9:50 am
Location: Bari - Italy
Contact:

Re: Compilazione Librerie

Post by aerrigo »

EnricoMaria wrote:Benissimo!

EMG
Allora da quello che ho capito, rivedendo i file di compilazione/link sembra che se non indichi l'unità disco nel file ListLibs.rsp non viene caricato il .RES.

Stò ancora indagando, ma la cosa mi sembra alquanto strana.

Andrea.
Andrea Errigo
info@andreaerrigo.it
Post Reply