Newsgroup: it.comp.lang.visual-basic
Titolo: RegistrazioneOCX

Mi piacerebbe capire la questione della registrazione degli OCX; mi
sembra di capire che è necessaria a volte, ma quando? Ovvero, dipende
da chi ha fatto l'OCX obbligarmi (o chiedermi?) di registrarlo?
Gli OCX di VB non vanno registrati, vero?
Bah!
Grazie a chi mi vorrà chiarirmi questo dubbio.
Umbe

 Gli OCX di VB non vanno registrati, vero?
Invece si', in base a quanto riportato sopra.
Ciao
Aldo

da chi ha fatto l'OCX obbligarmi (o chiedermi?) di registrarlo?
Obbligarti? Forse stai confondendo la registrazione legale di software protetto da licenza non di
tipo freeware o GPL dalla registrazione di un componente ActiveX...
Per la 1a, dipende dalla licenza che accompagna il controllo, per la seconda, v. post di Hal1961.
Ciao,
Moreno
#sirri#@#morenosoft#.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.morenosoft.com/MSVBSite/
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------------------------------------

 ha scritto nel messaggio
news:3a524f43...@news.tin.it...

ogni componente ActiveX (e gli OCX lo sono) per poter essere utilizzato deve
necessariamente essere registrato;
ogni componente ActiveX espone delle classi di oggetto e delle interfacce;
ogni classe di oggetto o di interfaccia è identificata da un nome simbolico
e da una CLSID (cioè un identificatore univoco, del tipo
{b85ea052-9bdd-11d0-852c-00c04fd8d503}) che permette di distingure
universalmente un oggetto da un altro;
queste informazioni sono fondamentali per utilizzare i componenti ActiveX
(siano essi controlli o componenti "semplici");
quando da VB si vuole utilizzare un oggetto di tipo "ADODB.Connection", ad
esempio, VB cerca nel registry l'identificativo "ADODB.Connection" e da
questo risale al CLSID del componente (nel caso specifico
{00000514-0000-0010-8000-00AA006D2EA4});
una volta ottenuto il CLSID VB è in grado di rintracciare il componente
"fisico" (cioè la DLL oppure l'OCX o il file EXE) che contiene
l'implementazione del componente richiesto (nel nostro caso
"C:\Programmi\File comuni\System\ADO\msado15.dll");
a quel punto la DLL viene caricata in memoria (se non lo era gia in
precedenza) e viene richiesta alla DLL stessa (tramite la chiamata ad una
opportuna funzione esportata) la creazione di un oggetto di tipo CLSID
{00000514-0000-0010-8000-00AA006D2EA4} (cioè "ADODB.Connection" nel caso
specifico) il cui riferimento viene preso e utilizzato da VB;
per sommi capi la procedura descritta sopra è valida per tutti i tipi di
componenti COM/ActiveX (anche per quelli creati in VB; non c'è all'atto
pratico nessuna differenza)
va da se che la registrazione (cioè la scrittura nel registry, sotto la
chiave HKEY_CLASSES_ROOT delle informazioni di cui sopra) è assolutamente
necessaria per ogni componente che si vuole utilizzare;
ciao


Ma è anche vero che in molti casi ho caricato nel progetto l'ocx non
installato da VB, quindi senza effettuare alcuna registrazione, ed ha
sempre funzionato tutto: vuol dire che alcuni DEVONO essere registrati
ed altri possono non esserlo? Ovvero, da oggi ogni ocx che uso devo
registrarlo con regsvr32.exe ?
Grazie ancora.
Umbe

una curiosità. quando parlate di "registrare", intendete usare SOLO
regsvr32, o c'è qualcos'altro? qualcosa di menno... immediato, intendo...
mario

 registrarlo con regsvr32.exe ?
Se non e' registrato, si'.
Ciao
Aldo

 regsvr32, o c'è qualcos'altro? qualcosa di menno... immediato, intendo...
Anche regit e regocx :-)
Ciao
ALdo


no dai qual è la diff. fra i tre? quando si usa l'uno, l'altro e il
terzo..?? sono sulle spine (ahi!)
mario