Newsgroup: it.comp.lang.delphi
Titolo: D7  eseguibile .exe+dcu

invece che generare un unico file exe, comprensivo delle
varie unit, vorrrei generare una parte fissa (.exe) + vari
moduli .dcu da caricare in base alle necessita.
questo permetterebbe ad es. ,di fornire al cliente un modulo
per una stampa particolare, o dei moduli aggiuntivi , in modo
esterno e slegato dal nucleo principale .exe
ho controllato le opzioni di Project / Options, ma non vedo
niente che possa fare al caso.
e' fattibile senza creare DLL ?
grazie Maurizio 

 moduli .dcu da caricare in base alle necessita.
Puoi utilizzare i Packages che ti consentiranno di creare un .EXE di
partenza del programma
e tanti .BPL che saranno i vari moduli del programma.
Per l'utilizzo se ne è già parlato molto su questo ng ed e ti basterà quindi
fare una ricerca
su google per conoscere il funzionamento.
Ciao.
Marco D.T.

 moduli .dcu da caricare in base alle necessita.
La soluzione sono i packages.  I packages sono a tutti gli effetti delle
DLL.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 moduli .dcu da caricare in base alle necessita.
Mi sa che non ti è chiaro il processo di creazione di un file exe...
Per prima cosa, il codice sorgente viene commpilato da un apposito sw
che si chiama proprio compilatatore. Il risultato è un file
tipicamente con estensione obj per ogni file del codice sorgente.
Poi, tutti i files obj vengono "fusi" creando il file eseguibile da un
secondo programma, il linker.
Questa separazione permette di avere un file exe creato da files obj
creati da diversi compilatori ovviamente con specifiche impostazioni
atte a garantirne la compatibilità.
Tutto questo è spiegato molto chiaramente nei libri di informatica di
base.
I dcu, che altro non sono che obj non vengono caricati a runtime...
Sono già inclusi nel tuo file exe!
Forse ti confondi con gli overlay, usati fino ad alcuni anni fa..
Dividevi la applicazioni in più parti e il programma, in base a ciò
che deve fare, carica e scarica le parti aggiuntive dalla memoria..
In windows il concetto di overlay è assente.
AS

che deve fare, carica e scarica le parti aggiuntive dalla memoria..
in effetti erano parecchio comodi ... in Clipper poi una vera manna,
ma Delphi con i suoi eseguibili ci ha abituato bene, e quando capita di
fare qualcosa che si faceva normalmente 10 anni fa, ci si trova un'attimo
impacciati, cercando gli obj che non nci sono, e dimenticandosi dei
packages.
Maurizio

 packages.
gli obj ci sono, solo che in delphi, di default, escono i dcu.
Ma è cmq possibile linkare un obj delphi con uno c++.
AS

Ma è cmq possibile linkare un obj delphi con uno c++.
ti riferisci alle opzioni del linker {$L BLOCK.OBJ} ed alla
necessita' di dichiarare external le procedure e funzioni contenute
nell'obj ?
Maurizio

 ed alla necessita' di dichiarare external le procedure e funzioni contenute
Precisiamo...
Se usi solo external, delphi capisce che quella funzione/procedura sta
in un obj esterno. Questo per evitare l'errore di compilazione del tipo
"sta cosa non esiste".
Se usi external e ci metti la clausola library, delphi capisce che
quella funzione/procedura sta in un obj esterno. Questo per evitare
l'errore di compilazione del tipo "sta cosa non esiste". Poi, appena la
app parte, se la dll non c'è, la app non parte e winsozz di dice che
non puo inizializzarla xche manca qualcosa.
AS

L'obj è standard, il dcu è proprietario.
trovo questa indicazione
 Generate object file (-J) option
 Using the -J option will generate an object file.
per quanto ne so queste direttive si danno da linea di comando
dcc32 nomefile -J
l'utilita' reale degli obj, per unit Delphi , non mi pare cosi' vantaggiosa
per suddividere un eseguibile, rispetto all'uso dei packages.
Maurizio 

 Mi sa che non ti č chiaro il processo di creazione di un file exe...
A me invece pare che gli sia chiarissimo.  Sta parlando di packages, solo
che non sa che si chiamano packages, probabilmente giustificato, in quanto
inesperto su Delphi.  Tutto qui.


 per suddividere un eseguibile, rispetto all'uso dei packages.
maurizio, puoi scegliere se usare i package o no, questo è un fatto.
Ma gli obj non servono a suddividere l'eseguibile, ne sono parte 
integrante. Lascia che delphi di default genera dcu, ma semplicemente 
NON PUOI FARNE A MENO xche è con gli obj/dcu che il linker costruisce il 
file exe.
Gli obj non sono una alternativa ai packgage.
AS

 Io avevo qemm oppure netroom.
ramdrive, ramdoubler, qemm...un tuffo nel passato :)
-- 
Lis                 
www.alessandroghezzi.it
O'Telma Formula1:   
http://snipurl.com/otelma
L’ottimista pensa che questo sia il migliore dei mondi possibili. Il
pessimista sa che è vero. (R.Oppenheimer)