Newsgroup: it.comp.lang.visual-basic
Titolo: Mistero del VB6

Ho un applicazione fatta da 1 exe, 1 ocx, 2 dll che fa accesso a due db
oracle ed uno sql server. Il programma gira perfettamente dall'editor VB6
ma una volta ricompilati i componenti, una dll, quella di base che non ha
riferimenti verso gli altri componenti, non funziona bene, ossia viene
istanziata ma non gira come dovrebbe. 
I riferimenti sono tutti impostati
a dovere sui sorgenti (all'interno del gruppo di progetti) mentre la
compatibilità è impostata binariamente su compilati precedenti. Ripeto che
da vb l'applicazione gira perfettamente mentre in compilato la dll di
partenza no. Da cosa potrebbe dipendere il problema ? Potrebbe dipendere
anche dal registro di sistema visto che è zeppo di versioni create da altri
miei colleghi ? Grazie a tutti.
--------------------------------
Inviato via 
http://usenet.iol.it

 Ho un applicazione fatta da 1 exe, 1 ocx, 2 dll che fa accesso a due db
[CUT]
Che versione di Sp hai??
Ho auto problemi simili prima dell' installazione del Sp4.
--
Ivan Castellaro
Mettere un punto tra nome e cognome per l'e-mail.
ivancas...@libero.it

 ha scritto: 


--------------------------------
Inviato via 
http://usenet.iol.it
 

 miei colleghi ?
No, ma una pulizia ogni tanto non può che far bene al sistema che così si
appesantisce inultilmente.
Esistono appositi tools per fare questo.
Ciao

 Da cosa dipende?
Getto del massimo del carburatore sporco, candela sporca
o le puntine, se è un modello vecchiotto. Se è ferma da molto,
svuota e lava il carburatore con acetone puro, e cambia la
candela.
Ah, sì, controllerei anche l'integrità del cavo dell'alta tensione.
Ora, farlo in VB in effetti è difficilotto... mi sa che bisognerebbe
ricorrere alle API, per riaggiustare quella Vespa. ;-)
Bye, G.

Da cosa dipende?
Hai provato a metterci la miscela ?
-- 
ciao, hal::P

Cosa significa che non si comporta come dovrebbe?
Su forza
! Il significato è deducibile: se una dll è fatta di routine che
rappresentano metodi e proprietà richiamati dall'exe questi non funzionano
a dovere. Credo comunque di aver capito il problema dopo qualche ora
passata su MSDN :-( Praticamente, quando si effettuano variazioni di un
certo tipo su una dll, ad esempio aggiunta di altre routine, si rende
automaticamente incompatibile il componente anche se il progetto era
settato su compatibilità binaria. MSDN suggerisce allora di togliere la
compatibilità e cambiare il nome al progetto, il nome del file compilato e
aumentare il numero di versione poiché il solo clsid da solo non riesce ad
indetificare esattamente il componente di riferimento, specie se si
istanzia la classe con: dim ciccio as classe - anziché : dim ciccio as
componentenuovo.classe - complice anche il fatto delle numerose versioni
divergenti che creano confusione al sistema.
Spero di essere stato chiaro
stavolta. Grazie a tutti.
Stefano


 settato su compatibilità binaria.
mmm, a quanto mi risulta la compatibilità viene mantenuta se aggiungi
routines/enumeratori e quant'altro.
Non viene mantenuta se cambi l'interfaccia dei membri presenti o se li
cancelli (d'altra parte VB ti avverte!)
Quindi con la compatibilità binaria un vecchio prog. continuerebbe a girare
anche con la nuova dll, con le correzioni alle sub vecchie, mentre il prog.
nuovo può usare anche lui la nuova dll con tutte le sue nuove sub.
Ciao