2008-09-25 15 views
5

Ho una vecchia base di codice Delphi che devo mantenere, molte DLL, alcune più vecchie di altre. In alcune di queste DLL non ci sono informazioni sulla versione nella finestra di dialogo Opzioni progetto. I controlli per aggiungere una versione sono disattivati ​​e non riesco nemmeno ad aggiungere un numero di versione modificando manualmente il file .DOF. Come posso includere un numero di versione in questi progetti?Non riesco a includere un numero di versione in questo vecchio progetto Delphi che ho ereditato. Come lo aggiusto?

risposta

10

Verificare se il file .RES predefinito esiste nella posizione di origine del progetto. Delphi include il numero di versione del progetto in un file .res con lo stesso nome del file .dpr. Se il file .RES non esiste, il modo più semplice per ricrearlo è aggiungere la direttiva del compilatore {$ R * .RES} al file .DPR, immediatamente dopo la clausola uses.

library foolib;  

uses 
    foo in 'foo.pas', 
    baz in 'baz.pas'; 

{$R *.RES} 

exports 
    foofunc name 'foofunc'; 

end; 

Non appena si aggiunge il {$ R * .RES} direttiva del compilatore Delphi vi dirà che ha ricreato il file foolib.res risorsa.

2

È possibile creare e incorporare file di risorse nelle librerie create con Delphi, utilizzando la direttiva $ R.

Questo link contiene informazioni rilevanti per la costruzione del file RES. Delphi ha il proprio compilatore di risorse: BRCC32

+0

John non l'ha già scritto? – gabr

+2

Sì, ma non ho menzionato il BRCC32. –

+0

:-(Dato che John ha risposto alla domanda mentre stavo scrivendo il mio (e quindi non l'ho visto) ho pensato che il down-vote fosse un po 'duro! - Ho anche fornito un link alle informazioni sulle risorse * e * menzionato il compilatore di risorse! È quasi sufficiente per farmi smettere di sorridere! – Andrew

0

Io uso un sistema di controllo build (FinalBuilder) e questo è in grado di aggiungere risorse di versione a tutte le DLL e agli EXE che sono tutti coerenti. Quindi posso essere sicuro che il set di file è tutto etichettato con la stessa build. Ci sono alcuni progetti Delphi che non hanno versioni di default, e FB li aggiungerà comunque per te.

+0

Sembra interessante. Lo terrò a mente per i progetti futuri. –

6

Sembra che la direttiva {$R *.RES} delle risorse manchi (o racchiusa nelle definizioni condizionali) nel file .dpr in modo che l'IDE non la trovi.

0

L'inclusione delle informazioni sulla versione in dll è un po 'irregolare. Se si specifica un lib_suffix, le informazioni sulla versione non vengono aggiornate.