Ricompilare le librerie FWH

Moderator: Enrico Maria Giordano

Ricompilare le librerie FWH

Postby aerrigo » Tue Oct 31, 2006 11:10 am

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.
aerrigo
 
Posts: 24
Joined: Wed Oct 18, 2006 9:50 am
Location: Bari - Italy

Re: Ricompilare le librerie FWH

Postby Enrico Maria Giordano » Tue Oct 31, 2006 11:29 am

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
User avatar
Enrico Maria Giordano
 
Posts: 8718
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby aerrigo » Tue Oct 31, 2006 11:41 am

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.
aerrigo
 
Posts: 24
Joined: Wed Oct 18, 2006 9:50 am
Location: Bari - Italy

Postby Enrico Maria Giordano » Tue Oct 31, 2006 11:50 am

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
User avatar
Enrico Maria Giordano
 
Posts: 8718
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby aerrigo » Tue Oct 31, 2006 11:57 am

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.
aerrigo
 
Posts: 24
Joined: Wed Oct 18, 2006 9:50 am
Location: Bari - Italy

Postby Enrico Maria Giordano » Tue Oct 31, 2006 12:00 pm

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
User avatar
Enrico Maria Giordano
 
Posts: 8718
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby aerrigo » Tue Oct 31, 2006 12:39 pm

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.
aerrigo
 
Posts: 24
Joined: Wed Oct 18, 2006 9:50 am
Location: Bari - Italy

Postby Enrico Maria Giordano » Tue Oct 31, 2006 12:49 pm

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
User avatar
Enrico Maria Giordano
 
Posts: 8718
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby aerrigo » Tue Oct 31, 2006 1:01 pm

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.
aerrigo
 
Posts: 24
Joined: Wed Oct 18, 2006 9:50 am
Location: Bari - Italy

Postby Enrico Maria Giordano » Tue Oct 31, 2006 5:38 pm

deffile. Dalla documentazione:

ILINK32 [@respfile][options] startup myobjs, [exe], [mapfile], [libraries], [deffile], [resfile]


EMG
User avatar
Enrico Maria Giordano
 
Posts: 8718
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby aerrigo » Tue Oct 31, 2006 5:51 pm

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.
aerrigo
 
Posts: 24
Joined: Wed Oct 18, 2006 9:50 am
Location: Bari - Italy

Postby Enrico Maria Giordano » Tue Oct 31, 2006 6:05 pm

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
User avatar
Enrico Maria Giordano
 
Posts: 8718
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Compilazione Librerie

Postby aerrigo » Tue Oct 31, 2006 6:09 pm

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.
aerrigo
 
Posts: 24
Joined: Wed Oct 18, 2006 9:50 am
Location: Bari - Italy


Re: Compilazione Librerie

Postby aerrigo » Wed Nov 22, 2006 7:42 am

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.
aerrigo
 
Posts: 24
Joined: Wed Oct 18, 2006 9:50 am
Location: Bari - Italy

Next

Return to All products support

Who is online

Users browsing this forum: No registered users and 7 guests