Telefonino.net network
Win Base Win Adv Win XP Vista Windows 7 Registri Software Manuali Humor Hardware Recensioni Blog Download Foto
INDICE SEZIONE NEWS WEB NEWS SOFTWARE PUBBLICITA'
Cosa sono le DLL

by Simone Rota

Dynamic Link Library

Basta aprire la cartella Windows/System per trovare una lista apparentemente infinita di file con estensione .DLL ed il loro numero aumenta ad ogni nuova installazione.
Molti problemi di conflitti Software dipende da loro e una discreta parte del registro di configurazione si occupa della loro gestione.
Ma cosa sono le DLL?


Partiamo dall'inizio...

Una volta i programmi erano contenuti quasi per intero in un unico file .EXE di dimensioni abbastanza elevate. Ogni aggiornamento del programma comportava la sostituzione del file eseguibile ed ogni nuova funzione ne aumentava ulteriormente le dimensioni. Ogni programma portava nella propria cartella tutti i file necessari per l'accesso ai dati, l'interfaccia grafica, ecc.

Presto ci si è resi conto che tanti file (o comunque tante funzioni contenute nei file) risultavano duplicate più volte all'interno delle varie cartelle e questa consapevolezza ha portato alla creazione delle Librerie.

Le Librerie sono file con estensione .DLL che contengono funzioni condivise da tutti i programmi evitando una ridondanza di codice. In questo modo si avranno, ad esempio, le DLL COMCTL32.DLL (toolbars, contenitori di testo, barre di scorrimento, ecc), MAPI32.DLL (che contiene le funzioni di posta) o SHELL32.DLL (contiene la maggior parte delle icone di windows) installate nella cartella di sistema di Windows ed a disposizione di ogni programma.

Un altro vantaggio dell'utilizzo delle librerie è la semplificazione degli aggiornamenti. Ad esempio, un programma gestionale Gest.Exe potrà avere una Libreria Data.Dll che si occupa dell'accesso al DataBase (Inserimenti, Modifiche, Cancellazioni e Ricerche) tramite ODBC.

Se un Domani il gestore vorrà cambiare tecnologia di accesso ai dati sarà sufficiente creare un nuovo file con lo stesso nome e con la stessa interfaccia verso l'esterno che vada a sostituire Data.Dll senza che il resto del programma subisca modifiche.

Questo vale per ogni programma che gira sotto Windows, SO compreso.


Tipi di Librerie

Tecnicamente una Dynamic Link Library (DLL) è un file compilato che contiene una serie di funzioni che possono essere utilizzate da qualsiasi altro Processo Server e non è detto che debba avere l'estensione .DLL; anche gli EXE hanno questa potenzialità così come i driver dei dispositivi di Windows non sono altro che Librerie con estensione .DRV. Inoltre, essendo compilate, sono completamente indipendenti dal linguaggio in cui sono state scritte. Questo permette ad un programmatore Visual Basic di sfruttare Librerie scritte in C++ o viceversa. Tuttavia esistono varie tipologie di librerie con caratteristiche molto diverse.

Prima di tutto è necessario differenziare le Librerie Standard dalle Librerie COM.
Quando si utilizzano le prime si eseguono chiamate dirette alle funzioni API (Application Programming Interface) di windows. Le seconde, invece, hanno un interfaccia COM (Component Object Model), che permette di comunicare coi loro componenti tramite un'architettura Software e una Libreria dei Tipi, che permette l'utilizzo di funzioni come Object Browser e Auto List Members a livello di programmazione. Proprio queste funzioni fanno si che questo tipo di Librerie venga utilizzato per la maggiore dai programmatori. A livello di prestazioni le Librerie Standard sono più veloci mentre le Librerie COM garantiscono una miglior gestione degli errori (evitando il più possibile le famose schermate Blu).

Un'altra classificazione va fatta tra i file .DLL e quelli .EXE.
Le DLL lavorano sempre nello spazio d'indirizzamento del processo chiamante (in-process) e non possono funzionare in un proprio task. Un file eseguibile in genere può essere utilizzato sia come libreria che come programma a se stante e lavora sempre in un proprio processo. L'utilizzo di librerie .EXE è più lento perché il passaggio dei dati tra un processo ed un altro (Marshaling) richiede più tempo e più risorse. Lo svantaggio delle DLL è che in caso di un loro blocco l'intero processo viene bloccato compreso quindi il programma chiamante. [MARSHALING: E' l'operazione che utilizza COM ogni volta che deve comunicare con un server out-of-process.]

Un'ultima differenziazione va fatta tra i file .DLL e gli .OCX.
Entrambi i tipi di file lavorano allo stesso modo ma i secondi forniscono oltre alle funzioni anche una propria interfaccia grafica. Gli Ocx sono detti anche ActiveX.

Esistono infine altre particolari Librerie che contengono l'elenco delle Proprietà, degli Eventi e dei Metodi dei componenti COM; sono dette Dei Tipi e possono essere .EXE, .DLL, .OLB, .TLB, .OCX.


API e DLL

Si è accennato in precedenza alle API. L'API di Win32 è costituita da un gruppo di DLL Standard che fornisco funzioni a basso livello al Sistema Operativo.

Eccone alcune:

KERNEL32.DLL funzioni operative di basso livello. (gestione della memoria, dei task, delle risorse e operazioni correlate)
USER32.DLL Funzioni relative alla gestione di Windows (messaggi, menu, cursori, timer, caret, comunicazioni e la maggior parte delle altre funzioni che non riguardano la visualizzazione.
GDI32.DLL Funzioni che hanno a che fare con l'output dei dispositivi
COMDLG.DLL, LZ32.DLL, VERSION.DLL Supporto per le finestre di dialogo comuni, la compressione dei file e il controllo della versione. In alcuni casi sono accessibili direttamente in altri è necessario ricorrere alla APIGID32.DLL
APIGID32.DLL Fornisce a VB l'interfaccia ad alcune funzioni non compatibili
ODBC32.DLL Una delle DLL che implementano l'Open Database Connectivy). Queste funzioni forniscono un API standard per diversi tipi di DataBase.
COMCTL32.DLL Implementa il nuovo gruppo di controlli delle finestre (elenco ad albero, ecc.)
MAPI32.DLL Forniscono le API che permettono a qualsiasi applicazione di operare sulla posta elettronica.
NETAPI.DLL Funzioni di accesso e controllo delle reti.
WINMM.DLL Funzionalità multimediali di un sistema.

|   Pagina1  |  Pagina 2 Pagina 3  |  Pagina 4  |

 In evidenza Spia chiunque tramite cavo USB



Nel Web in WinTricks
Copyright © 1999-2012 Master New Media s.r.l. p.iva: 02947530784
COPYRIGHT . PRIVACY . REDAZIONE . STORIA . SUPPORTA