Newsgroup: it.comp.lang.delphi
Titolo: MIDAS.DLL e uses

Salve,
ho creato una DLL (con dentro una sorta di LoginPrompt) che utilizzo per
gestire l'accesso al mio database Firebird, ovvero per inizializzare un
componente TSQLConnection (che viene passato tra i parametri di input
di una funzione definita dentro la DLL) con i valori opportuni.
Come suggerito da qualcuno in altri post ho inserito MidasLib tra le uses
(per evitare di dover distribuire MIDAS.DLL insieme alla mia applicazione
dato che ciň comporterebbe dei costi di licenza non indifferenti), ma non
appena ho apportato tale modifica la mia DLL ha smesso di funzionare...
in pratica subito dopo avermi autenticato l'utente mi appare un messaggio
di errore "Errore inatteso" non meglio specificato.
Appena tolgo la MidasLib dalle uses tutto riprende a funzionare normalmente.
Idee ?
Grazie,
Riccardo
---

 Idee ?
Trattandosi di una DLL, è possibile che l'aggiunta di MidasLib - 
provocando la compilazione del codice della unit nella DLL e, forse, 
anche nel progetto - generi di fatto due moduli eseguibili con le stesse 
classi ma con versioni binarie differenti.
A seconda dell'uso che si fa delle classi di MidasLib, nell'eseguibile e 
nella libreria vengono compilati solo alcune classi e di queste solo i 
membri utili.
Meglio evitare l'uso di MidasLib per moduli interdipendenti: piuttosto, 
compila con i runtime package attivati includendo nell'elenco tutti 
quelli utilizzati, oppure trasforma la tua DLL in un package Delphi.
Ciao! :-)
-- 
Marco «Alka» Breveglieri
  ABLS Team S.n.c. - Software & Web
  Via De Gasperi, 14
  42019 Scandiano (Reggio Emilia)
 
http://www.abls.it

Riccardo wrote:
quali opzioni di compilazione hai attivato nel prj della dll?
AS

 ha scritto nel messaggio
news:4146...@x-privat.org...


 ha scritto nel messaggio
news:a0B1d.317640$5D1.14...@news4.tin.it...


 quali opzioni di compilazione hai attivato nel prj della dll?
Non saprei dirti... ho semplicemente lasciato quelle di default
dopo aver scelto DLL dal wizard dei nuovi progetti.

 un saluto
Grazie mille

 che dbExpInt (se relativa a dbExpress) non dovrebbe servirmi.
*Non* dovrebbe servirti, poichè è il driver dbExpress per 
InterBase/FireBird.
Hai tentato la soluzione che ti avevo proposto io, quella in cui si 
adoperavano i "runtime package"? ;-)


 adoperavano i "runtime package"? ;-)
Avevo già i runtime package attivi...
Ho provato a ridurre al minimo i package attivati, ma la sostanza non è
cambiata:
- Appena inserisco MIDALIB tra le uses (solo della DLL) mi esce fuori un
"Errore inatteso"
Grazie comunque,
Riccardo

 cambiata
Se lo hai fatto come "misura di sicurezza", era meglio aumentare la rosa 
dei package selezionati ed elencati nella casella sottostanze l'opzione 
"Build with runtime packages".
Inoltre, preciso (se non l'ho detto prima) che questa opzione deve 
essere fatta su entrambi i progetti, quello dell'applicazione e quello 
della DLL.
Secondo me, il problema č questo: se usi i runtime package, non hai 
bisogno di inserire MidasLib nella clausola *uses* poichč l'applicazione 
e la DLL sono giŕ impostate per collegarsi dinamicamente ai package BPL 
che contengono l'implementazione di classi e componenti utilizzate.
Al contrario, se non usi i runtime package, puoi inserire MidasLib nella 
clausola *uses* delle unit che ne fanno uso, sia nel progetto 
dell'applicazione che in quello della DLL...tuttavia, in questo modo 
Delphi compilerŕ nei due moduli, eseguibile e libreria, solo quanto 
della unit MidasLib viene effettivamente utilizzato dalle singole parti, 
ottenendo moduli incompatibili. A questo punto, č obbligatorio rimuovere 
MidasLib per evitare problemi come quello che ottieni.
Spero di aver chiarito il mio punto di vista (sperando che coincida con 
il problema effettivamente riscontrato). ;-)


 che dbExpInt (se relativa a dbExpress) non dovrebbe servirmi
ok, avevo capito che ti connettessi al db FB e ti servisse comunque anche il
relativo driver dbx...
siccome mi era capitato un "errore inatteso" simile in fase di aggiunta di
dbExpInt alla uses (risolto solo con l'aggiunta di MidasLib) ho pensato
potesse essere un tentativo da provare come in:
http://groups.google.it/groups?hl=it&lr=&ie=UTF-8&threadm=MPG.1712490d2303dd68989697%40newsgroups.borland.com&rnum=8&prev=/groups%3Fq%3Ddbexpint%2Buses%2Bdelphi%26hl%3Dit%26lr%3D%26ie%3DUTF-8%26selm%3DMPG.1712490d2303dd68989697%2540newsgroups.borland.com%26rnum%3D8
un saluto

 ha scritto nel messaggio
news:mkV1d.255964$OR2.11...@news3.tin.it...

Ok, grazie... ho fatto qualche prova, ma al momento per motivi di tempo ho
aggirato il problema semplicemente non inserendo MidasLIB tra le uses.
Appena avrà un po' di tempo in più vedrò di approfondire
Riccardo