Newsgroup: it.comp.lang.visual-basic
Titolo: [VB6] ActiveX, versioni e registrazione

Ciao a tutti.
Ho a che fare da pochissimo con un ActiveX EXE (il primo che sviluppo), ed
ho un qualche dubbio riguardante i problemi legati alle versioni ed alla
registrazione.
Mi spiego: un ActiveX EXE (che d'ora in poi chiamo "AX") viene utilizzato da
un progetto in VB6 (d'ora in poi "PRG"). Se modifico e ricomplio PRG, tutto
sembra funzionare, incluse le chiamate ad AX.
Ma se ricompilo AX, anche senza aver modificato l'interfaccia, ottengo un
errore. Dopo ricerca su google, il problema viene risolto impostando su AX
"Compatibilità binaria": in tal modo, leggo su MSDN, il CLSID viene lasciato
così com'è, e l'"aggancio" con PRG è integro.
1a domanda: Che nome programma devo indicare sulla casella sotto a questa
opzione ? Quello dell' AX o di PRG ? Attualmente ho lasciato il default, che
è il nome dell'AX, ma non mi sembra che abbia molto senso...
2a domanda: Con sta storia della "compatibilità binaria", è necessario fare
l' /unregister ed il /register del componente ogni volta ? Io penso di no,
in quanto il CLSID dovrebbe restare lo stesso, giusto ?
E se invece modifico l'interfaccia (sempre dell AX), devo farlo ?
Scusate, ma ho le idee un po' incasinate, e non ho una macchina "pulita" su
cui fare prove.
Paolo

 cui fare prove.
Se lo sviluppo è il tuo lavoro, un VirtualPC o un VMWare non può 
mancare nel tuo ufficio.
Oltretutto, per gli sviluppatori VirtualPC viene praticamente gratis in 
tutti i vari bundle 'low-cost'.
Ciao
Alberto
-- 
Max Beerbohm: Tutto ciò che è degno di essere fatto è stato fatto 
ripetutamente. Dalle cose mai fatte bisognerebbe tenersi, sospetto, 
molto alla larga.

tutti i vari bundle 'low-cost'.
Qui si scarica VirtualPC 2004 free:
http://www.microsoft.com/downloads/details.aspx?displaylang=it&FamilyID=6D58729D-DFA8-40BF-AFAF-20BCB7F01CD1
--
ciao
  Stefano

 ha scritto nel messaggio 
news:450fcac5$1...@newsgate.x-privat.org...

In effetti il discorso è piuttosto confuso.
Partiamo dalle cose semplici.
Nella casella della compatibilità devi indicare il vecchio componente AX su 
cui si basa la compatibilità.
Questo ha senso perchè non è solo il tuo prog che potrebbe usare tale 
componente, quindi una compatibilità con il programma non ha senso.
Non serve ri-registrarlo perchè ha lo stesso CLSID e percorso fisico.
Per il resto anch'io la sapevo come dice MSDN, ma poi mi hanno detto 
qualcosa in più che sinceramente non ho verificato se non tramite problemi 
passati che effettivamente potevano essere legati a questo, faccio un 
esempio:
- compili l'AX v1 e viene marcato e registrato con il suo CLSID
- compili l'AX v2 in comp. con v1, viene aggiunto al CLSID di v1 anche 
quello di v2
In questo modo i vecchi prog che usavano il clsid v1 continueranno a fare le 
chiamate a quello.
I programmi nuovi invece faranno le chiamate al nuovo CLSID e il SO le 
redirigerà sul vecchio.
Questo significa che, se
- compili l'AX v2 in compatilità con v2 la catena di CLSID si allunga e 
ognuno usa i suoi e qui iniziano i casini perchè se ricompili su una 
versione errata rischi di rompere la catena.
In sintesi, se il tuo AX segue strettamente l'exe conviene ricompilare 
sempre sulla ver. 1, altrimenti sull'ultima rilasciata facendo attenzione a 
tenersi un backup di tutte le release compilate.
Ciao 


VMWare player (ultima release, free) + VMWare Builder 
(
http://www.consolevision.com/members/dcgrendel/vmxform.html
) o VMX Builder 
+ eventuali utility (
http://petruska.stardock.net/Software/VMware.html
)
Ciao 

 sempre sulla ver. 1
Cosa intendi con ricompilare sempre sulla versione 1 ?
Grazie per l'aiuto!
Paolo

 tutti i vari bundle 'low-cost'.
Ti ringrazio per i suggerimenti!
Paolo


http://www.microsoft.com/downloads/details.aspx?displaylang=it&FamilyID=6D58
729D-DFA8-40BF-AFAF-20BCB7F01CD1
Grazie Stefano.

 Cosa intendi con ricompilare sempre sulla versione 1 ?
Come sopra, ricompilando con lo stesso nome e quindi sovrascrivendo la
vecchia versione, ok ?
Se è così mi è tutto chiaro, e farò seguendo quest'ultima modalità, in
quanto l'AX segue strettamente PRG.
Paolo

 ha scritto nel messaggio 
news:450fe78a$1...@newsgate.x-privat.org...

No, con v1 intendo la versione 1, cioè la prima release, con v2 intendo la 
seconda release e così via.
Se tu aggiungi metodi o classi non rompi l'interfaccia, se aggiungi 
parametri optional non rompi l'interfaccia ma a volte fa casino a causa 
della loro gestione.
Ciao