Connessione al database con Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
Guide e Tutorials:indexed
Creare i files .DLL (Tutorial completo) di Alberto Ferrari

A partire da Visual Basic 6 è stato possibile crare DLL peronalizzate. Esse avranno le stesse caratteristiche delle DLL fornite da Microsoft ed inserite nella directory "C:\Windows\System\". Creare DLL personalizzate porta a notevoli vantaggi in quanto:

1) le funzioni contenute in esse possono essere utilizzate in più progetti, richiamando questo o quel file DLL, senza dover obbligatoriamente copiare o condividere il codice;

2) quando si modifica una DLL alla quale un progetto fa riferimento, non c'è bisogno di ricompilare l'intero progetto a meno che non vi sia una modifica a livello di interfaccia;

3) hanno accesso alle dll personalizzate non solo Visual Basic ma anche altri linguaggi di programmazione;

4) le DLL possono essere installate o registrate su altre macchine in modo da permettere ad altri utenti (ed altri computer) di accedere ad altre classi.

Cominciamo quindi a scoprire come creare una DLL personalizzata.
Innanzitutto aprire un nuovo progetto e scegliere DLL ActiveX. Un progetto DLL può avere moduli e moduli di classe ma non Forms. Per questo motivo, se aprendo un progetto EXE Standard si crea automaticamente una nuova Form chiamata per default Form1, aprendo un progetto DLL ActiveX si crea una nuova classe denominata Class1. E come i Moduli sono accessori alle Forms, le classi supportano i Moduli di Classe.
Il grafico sottostante mostra appunto le relazioni appena illustrate:


Apriamo quindi un nuovo progetto DLL ActiveX. Decideremo di rinominarlo come "progMedia". Come già detto, all'apertura del nuovo progetto DLL ActiveX sarà apparso una classe denominata Class1. Aggiungiamo a Class1 questa funzione, che non fa altro che calcolare la media di due numeri. La funzione è chiamata Media:

Public Function Media(Dato1 As Double, Dato2 As Double)
Media = (Dato1 + Dato2) / 2
End Function

Ecco che la nostra DLL è stata creata. Adesso nasce un secondo problema...come testare la DLL ancor prima di registrarla? Quando si lavora con una DLL ActiveX infatti ci sarà molto probabilmente necessità di un progetto EXE Standard per testare la classe premesso che una DLL ActiveX da sola non significa molto, in quanto progettata per essere richiamata da un progetto ad essa esterno. Vi sono allora parecchi modi per testare le funzionalità della DLL, prima di compilarla:

1) usare un gruppo di progetto nel quale coesisterà sia un progetto EXE Standard che un progetto DLL ActiveX;

2) usare un'istanza separata di Visual Basic, avviando prima la DLL ActiveX e poi l'EXE Standard;

3) compilare la DLL, chiudere definitivamente il progetto DLL ActiveX, e richiamarla da un progetto EXE Standard.

Vediamo in dettaglio il primo metodo.
Siamo ancora con la classe aperta nel progetto "progMedia". Andiamo sulla barra del menu principale e scegliamo File. Da questo menu troviamo e selezioniamo "Aggiungi progetto". Quest'opzione ci permette di caricare più progetti all'interno di uno solo.


Quando la finestra che si aprirà ci chiederà quale tipo di progetto aggiungere, selezioniamo EXE Standard. Nella finestra Progetto, il progetto Media sarà composto quindi dalla solita Class1 e da Progetto1 che contiene una Form. Siccome la DLL da sola non ha senso, cliccare col pulsante sinistro del mouse nella finestra Progetto sul progetto "Progetto1" e scegliere dal menu che compare, la voce "Imposta come progetto d'avvio". In questo modo il gruppo di progetto, una volta ricevuto l'avvio si caricherà partendo dall'EXE Standard e non dalla DLL ActiveX.



E questo è proprio ciò che faremo: diamo un primo avvio al progetto. Comparirà Form1 vuota e nulla sembrerà accadere.
Richiudiamo il progetto e torniamo in fase di sviluppo. L'operazione appena compiuta è servita per far riconoscere al sistema la presenza della DLL e quindi per saltare al passo successivo che compieremo.
Andiamo alla barra menu principale e scegliamo l'opzione "Progetto". Da "Progetto" scegliamo la voce "Riferimenti". Si aprirà una lista dei riferimenti a cui Visual Basic punta. Noteremo la presenza della nostra DLL, col nome con la quale è stata denominata (nel nostro caso "Media").
Contrassegnamola col segno di spunta e diamo l'OK alla finestra.




Adesso possiamo agevolmente richiamare la funzione contenuta nella classe "Class1" del progetto DLL ActiveX "Media" direttamente da Form1:

Private Sub Form_Load()
Dim Media As New Media.class1
Dim Dato1 As Double
Dim Dato2 As Double
Dim Risultato As Double
Risultato = Media.Media(3, 6)
MsgBox Risultato
End Sub

E come risultato finale, ottenuto dando l'avvio al progetto, si otterrà una finestra di messaggio recante il risultato della media tra 3 e 6 ossia 4.5.

Adesso passiamo al secondo metodo, caratterizzato dal fatto di usare più istanze di Visual Basic. Nel caso in cui il progetto DLL ActiveX o l'EXE Standard (o entrambi) siano molto complessi, creare due istanze di Visual Basic (ottenute aprendo una seconda volta Visual Basic senza chiudere la sessione precedente), può rivelarsi utile per non far confusione e per poter gestire i progetti all'interno del loro ambiente.
La differenza principale tra l'utilizzo di più istanze di Visual Basic e di un gruppo di progetto è che mentre in quest'ultimo caso dare l'avvio al progetto unico avvierà sia l'EXE Standard sia la DLL ActiveX, nel primo caso le due operazioni devono essere compiute manualmente, avviando prima la DLL e poi l'EXE Standard.

Per concludere vediamo come utilizzare il terzo metodo, ossia la DLL compilata. In realtà, avendo già compilato la DLL ActiveX, questo non rappresenta un vero e proprio test (o almeno non con la stessa efficacia dei primi due) in quanto non sarà possibile apportare alcune modifiche successive alla DLL, a meno di non modificare il progetto DLL ActiveX e ricompilarlo nuovamente.
Infine vediamo come compilare ed in seguito utilizzare la DLL ormai testata e compilata.
Esistono dei brevi passaggi da eseguire prima di poterne fare uso:

1) Compilazione. A DLL terminata andare sul menu principale e scegliere "File". Da "File" selezionare la voce "Crea Media.dll", stando attenti se si utilizza un gruppo di progetti di non scegliere l'opzione successiva nella quale verrà compilato tutto il gruppo di progetti (e quindi oltre la DLL anche l'EXE Standard).


Verrà richiesto anche il percorso nel quale salvare la DLL. E' consigliabile utilizzare il percorso "C:\Windows\System\", dove sono collocate tutte le DLL di Windows. In caso contrario, se si sceglie un altro percorso, non preoccuparsi se non si riesce a visualizzare la DLL nella cartella selezionata in quanto le DLL sono files nascosti. Scegliere allora l'opzione "Visualizza files nascosti" per poterli eventualmente cancellare.

2) Registrazione. Utilizzare il programma REGSVR32 per registrare la DLL nel registro di Windows.

Nota: Se non si dispone del REGSVR32, prelevarlo dalla rubrica SOFTWARE

3) Attivazione. Per rendere la DLL disponibile ai progetti Visual Basic, è necessario contrassegnarla col segno di spunta nella finestra "Riferimenti" di "Progetto".



Archivio:ndexed
Lezioni Commenta questa lezione Invia la tua guida Avviso per le nuove lezioni
Proponi un argomento

Visual Basic Italia© copyright 2000 - tutti i diritti riservati
E-mail:
vbitalia@libero.it