Newsgroup: it.comp.lang.visual-basic
Titolo: [?] creare una DLL

scusate ma sull'argomento sto un po' a terra.
se io voglio creare una "raccolta" di funzioni da utilizzare inpiu
occasioni, cioè una DLL, cosa devo fare?
apro visual basic
scelgo "DLL ActiveX" (o "DLL documento ActiveX"?)
scrivo le varie funzioni, con tutti gli argomenti al loro posto.
dopodichè faccio "File", "Crea File.dll"
dovrebbe funzionare?
quando vado a provare a richiamare da un altro project le funzioni contenute
nella dll, mi dice che la dll esiste, ma non riesce a trovare il punto
d'entrata delle funzioni...
come devo fare?
Mario

 occasioni, cioè una DLL, cosa devo fare?
Scusa, ma in questo momento non posso dilungarmi nella risposta. Comincia a
guardare la mia risposta al thread intitolato "EXE e DLL" del 18/07/2000 su
questo newsgroup.
Roberto

 Roberto
ehm... ma le risposte così vecchie mica le riesco piu a recuperare... a me
si ferma a stento all'inizio di agosto...

 wrote in message 8npjkr$eb6$1...@nslave1.tin.it...


scusate di nuovo, ma io non l'ho trovato neanche su Deja quel messaggio.
non è che qualcuno potrebbe aiutarmi, magari mandandolo sull'email, se lo ha
conservato?
grazie

Ciao,
prova a fare la stessa ricerca utilizzando l'oggetto, il forum ed il nome
dell'autore, vedrai che come d'incanto riuscirai a trovarlo ;o)


 non è che qualcuno potrebbe aiutarmi, magari mandandolo sull'email, se lo
ha conservato?
Spero sia questo:
| > >Okkio che parla di una DLL di VB.
| > scusate, credevo di essere ancora in Delphi... :o)
 | > ho ricontrollato, in effetti si possono creare solo DLL Activex, quindi
| > aggirare il problema con un modulo di classe...
Per essere un po' più esplicativi:
le tue funzioni devi inserirle in un modulo di classe in un progetto di tipo
ActiveX DLL, e dichiararle come pubbliche se vuoi che siano visibili; una
volta compilato con i dovuti settaggi, hai creato una bellissima DLL di tipo
ActiveX che richiede di essere inserita nelle References del progetto in cui
vuoi utilizzarle (se usi l'early-binding), oppure richiamata utilizzando
delle CreateObject (se usi il late-binding). La differenza con le DLL
classiche del C (librerie di funzioni) è che questo tipo di DLL viene
esposto come componente COM e quindi richiede:
- la registrazione sulla macchina in cui vuoi utilizzarla (che è automatica
per la macchina in cui l'hai compilata, ma richiede REGSVR32 per le altre,
oppure un setup specifico che la registri per te);
- l'istanziazione di un oggetto in quanto le tue funzioni risultano "i
metodi" dell'oggetto identificato dalla DLL (e qui la proprietà instancing
settata a global multiuse ti evita di far precedere il nome del metodo con
il nome della classe);
- una gestione "cosciente" del versioning in quanto COM è molto severo da
questo punto di vista (e mi riferisco al tipo di compatibilità che setti
quando vuoi compilare una nuova versione della tua DLL).
Non conosco il tuo grado di conoscenza di VB e COM, ma se non sei
sufficientemente esperto rischi di crearti più problemi che vantaggi.
Un ulteriore metodo potrebbe essere ancora quello (piuttosto rudimentale ma
efficace) di allegarti al progetto tutte le volte che ti serve un modulo con
le tue funzioni, e di mantenerlo aggiornato continuamente. In questo modo
però per aggiornare le funzioni nei vecchi EXE devi tutte le volte
ricompilare.
Ciao
Roberto
-------
ciao
alex

 esposto come componente COM e quindi richiede:
però il Linker è lo stesso :)
e dalla versione 4 in poi produce eseguibili Intel 32 bit con tutti i loro
attributi a posto, esportazione delle funzioni inclusa