Newsgroup: it.comp.lang.visual-basic
Titolo: Controlli OCX e compatibilità

E' possibile in qualche modo far coesistere sulla stessa macchina due
versioni incompatibili dello stesso OCX?
Mi spiego meglio (almeno spero):
Ho l'applicazione A.EXE che utilizza A.OCX memorizzato nella stessa cartella
di A.EXE
Modifico l'OCX e annullo la compatibilità con il precedente A.OCX
Posso installare sullo stesso PC un'altra applicazione B.EXE che utilizza la
nuova versione di A.OCX memorizzata nella cartella di B.EXE senza che A.EXE
si blocchi?
Spero di essere stato chiaro.
Grazie
Skysurfer

Non con vb6 ... dal .net in poi si :)
Ciao
Andrea

 sembra proprio impossibile.
Sě, ma se hanno lo stesso guid significa che sono compatibili, giusto?
Pensavo fosse possibile fare qualcosa con qualche trucchetto, memorizzando
l'ocx nella stessa cartella dell'applicazione e facendo in modo che ogni
applicazione usasse il suo ocx.
Grazie
Ciao
Skysurfer

Cioè ... se hanno lo stesso numero di guid, altrimenti
sembra proprio impossibile.
In realtà ti devi fare due ocx, che sembrano simili
in tutto e per tutto, ma hanno per l'appunto due
guid diversi.
Ciao
Andrea

 ha scritto nel messaggio
news:b06c3d$n6e$1...@serv1.iunet.it...

No, cosi' non funziona perche' a livello di registro l'ultimo che arriva (=
che viene registrato) vince.
Una possibile soluzione e' quella di cambiare il ProgID del tuo componente
(per esempio cambia il nome interno del progetto, lasciando inalterato il
nome della classe/usercontrol); in questo modo la nuova registrazione viene
vista come completamente distinta e puo' coesistere con la vecchia.
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 Sì, ma se hanno lo stesso guid significa che sono compatibili, giusto?
Sì, è come dici tu: se sono compatibili hanno lo stesso guid e non possono
coesistere: l'ultimo copiato nel percorso dell'ultimo registrato vince
(nota: se copi un ocx compatibile sopra uno precedentemente registrato,
proprio perchè ha la stessa interfaccia e quindi stesso guid non serve
nemmeno la registrazione).
Se i guid sono diversi, quindi i due ocx non sono compatibili basta
registrarli entrambi (ovviamente in due percorsi diversi :P).
Ogni exe userà il suo.
Ciao
--
mathParser = "
http://www.neodatatype.net
"
sitoComune = "
http://www.it-lang-vb.net
"

 versioni incompatibili dello stesso OCX?
lanci il tuo exe con un file batch :
file A.bat :
Regsvr32 c:\cartellaA\mioocx.ocx  /s
a.exe
file B.bat :
Regsvr32 c:\cartellaB\ mioocx.ocx  /s
b.exe
in pratica si vede solo una finestra nera che si apre e si chiude prima che
si carichi il tuo vero exe ! al limite fai un alto piccolo EXE in vb che
emula con il comando shell i due file bat !

Grazie per il suggerimento!
Skysurfer

 sembra proprio impossibile.
Qualcuno mi spiega la differenza tra GUID  e CLSID?
Grazie


GUID sta per Globally Unique Identifiers ed č un numero a 128 bit
rappresentato da 32 cifre esadecimali. Questi GUID sono generati in modo
tale che non ne possano MAI esistere due identici.
Un CLSID č semplicemente un GUID relativo ad una classe, cosě come un IID č
un GUID che identifica l'interfaccia.
Ciao
Skysurfer