Newsgroup: it.comp.lang.visual-basic
Titolo: Errori impossibili in VB

Ciao Raga!
Dunque, la questione sta cosě.
Ieri funzionava benissimo tutto.
Oggi, vado a modificare un componente del mio
progetto, inserisco un riferimento e KABOOM!
Non funziona piu' nulla.
Non so se č a causa di un riferimento circolare
all'interno del componente( due componenti che si
hanno nei rispettivi riferimenti ), ma tant'č che il
mio progetto non va piu'.
Suggerimenti?
Ciao
Andrea
P.S. Dopo aver sperimentato l'errore 403 adesso sto sperimentando
l'errore 48 in *compilazione* della libreria suddetta.
Ciao.
Andrea

 Suggerimenti?
Si, è proprio la presenza dei riferimenti
circolari, non c'è altra spiegazione plausibile.
Infatti appena tolto il riferimento, tutto ha ripreso a funzionare
benissimo.
Andrea

[The DeerBear] scrisse:

Propongo che questo thread sia inserito nel bestiario. :-)
Sono contento per te, Andrea, se il problema si è risolto, ma non ho
assolutamente capito che cosa era che non funzionava....
Salutoni
Sergio

 Sergio
Ciao
Andrea

 *riferimenti circolari*
Sě, ma cosa diavolo sono A e B?
Cosa fanno, cosa mangiano, dove dormono?
Dove li hai messi, come li hai chiamati, che colore hanno?
Sono alti, bassi, grassi, magri?
Hanno un vestito a pois o a righe?
Se incontrano java (nel senso labradoriano del termine) scappano,
scodinzolano o accarezzano?
Sono allergici a qualche medicinale?
L'anamnesi precedente com'č?
e via di questo passo....
Salutoni da
un Sergio che il venerdě pomeriggio č sempre piů contento del solito.

 un Sergio che il venerdì pomeriggio è sempre più contento del solito.
Andrea

 Sì, ma cosa diavolo sono A e B?
[snip]
Il problema è che in VB non ci possono essere.
P.S.: ho scoperto che avere errori in compilazione non è impossibile (ad.
es. io ci ho messo quasi 2 giorni a capire perchè la compilazione di un OCX
mi dava 91, anche se poi continuava tranquillamente e il tutto funzionava
pure).
Ciao

Cosa fanno, cosa mangiano, dove dormono?
Ah, beata gioventu'!
Quando si progettano applicazioni di una certa complessita' spingendo
la programmazione ad oggetti in VB ci si va regolarmente a sbattere
contro ;-)
-- 
ciao da hal, ObjPtr e CopyMemory ;-)

contro ;-)
dipende da come è stata fatta l'analisi... :-) (o meglio, _se_ è stata
fatta... :-))
Ciao,
Moreno
-- 
sirri at morenosoft dot com
Moreno Sirri VB Site - 
http://www.msvbsite.net
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.it-lang-vb.net
---------------------------------------------------------------------------

fatta... :-))
Ni.
In una gerarchia di oggetti e' possibile che si abbia la necessita'
tenere traccia dei genitori per i figli e dei figli per i genitori.
-- 
ciao, hal

tenere traccia dei genitori per i figli e dei figli per i genitori.
beh, genitore e figlio implementano una (o n) interfacce definite in una
typelib, quindi...


typelib, quindi...
quindi da qualche parte devono pur memorizzarsi dei dati...
-- 
ciao, hal


wrote:

sorry?


sorry?
ok, capito cosa intendi.
Cě, certo, i riferimenti circolari tra due oggetti cosě non li elimini,
non puoi farci niente, perň elimini il problema delle referenze
incrociate delle due librerie... che č un problema di definizione
dell'architettura dei componenti piuttosto che di implementazione...


dell'architettura dei componenti piuttosto che di implementazione...
Mumble mumble, a me sembra che il problema sia proprio
nell'implementazione. Comunque la si rigiri, si ha un'istanza x di
classe X che ha un riferimento ad una precisa istanza y di classe Y
e viceversa. Su questo non riesco a capire come risolvere intervenendo
sulla progettazione delle interfacce, perche' il problema e' sui dati
di istanza. 
Non escludo pero' che ricorrendo ad un pattern adeguato si possa
risolvere. Purtroppo adesso non ho esempi sottomano (da parecchio sto
lavorando pochissimo in vb), ma spero di ripescare un ocx (una specie
di query builder) che avevo fatto un due/tre anni fa e nel quale mi
ero ritrovato cross-references, che avevo poi risolto memorizzando i
puntatori agli oggetti invece dei riferimenti.
-- 
ciao, hal

di istanza. 
sono d'accordo. Però il cervo orsato (o orso cervato) aveva un problema
diverso: il componente (activex) A che referenziava il componente
(activex) B ed il componente B che referenziava A.
Qui non siamo a runtime ed è qui che intendevo c'è stato un errore nella
definizione dell'architettura...
Ipotesi 1:
componente deer.dll
	coclass ciccio
		[default] interface _ciccio
	        proprietà:		
		nonnapapera pippo()
 
componente bear.dll
	coclass nonnapapera
		[default] interface _nonnapapera
	       proprietà:
		ciccio pluto()
Fa schifo come l'ho scritto ma o mi tocca scrivere l'idl o la classe in
vb e c'ho sonno... se serve magari lo faccio domani
così facendo il componente deer.dll dovrà per forza referenziare
bear.dll e viceversa.
E' il problema sollevato da DerBear: si ha un incrocio nelle
referenze... questo è sbagliato ed è risolvibile così:
typelibrary sotomaior
	interface Iciccio
	interface Inonnapapera
componente deer.dll
	coclass ciccio
		[default] interface _ciccio
		interface Iciccio
		Inonnapapera pippo()
 
componente bear.dll
	coclass nonnapapera
		[default] interface _nonnapapera
		interface Inonnapapera
		Iciccio pluto()
così sia bear.dll che deer.dll diventano dipendenti da sotomaior e
perdono la referenza circolare.
Ipotesi2:
componente boh.dll
	coclass uomo
	        proprietà:
		uomo padre
		uomo figlio
allora sì che l'istanza figlio deve avere un riferimento al padre ed il
padre deve averne uno al figlio...
vabbé, mi si stanno incrociando pure gli occhi...


 il cervo orsato (o orso cervato)
o cara birra...

padre deve averne uno al figlio...
non mi piace granché come eempio... vabbé, tanto il problema che volevo
evidenziare, quello di "cervo scontroso" (chissą se si puņ intendere
cosģ, mah...) o "cara birra" come suggerisce pal.anagramma era l'ipotesi
1.
Se riesci, Hal, a trovare quel tuo ocx, magari sarebbe un esempio
migliore della seconda ipotesi...


 così, mah...) o "cara birra" come suggerisce pal.anagramma
.fonogramma :)



vero, ma se sostituisci la seconda "e" di deer con la "a" di bear...


 vero, ma se sostituisci la seconda "e" di deer con la "a" di bear...
si inverte ee/ea nelle due parole.
il suono delle quattro parole e' lo stesso...
ciao, a.