Dll (titre trop court)

Soyez le premier à donner votre avis sur cette source.

Vue 29 464 fois - Téléchargée 1 266 fois

Description

Bibliothèques de liaisons dynamiques(DLL)

- Définition

Une DLL est une bibliothèque contenant plusieurs fonctions API (Application Program Interface) qui sont des sous-prorammes généralement écrits en langage C. Les DLL ont la particularité de pouvoir être appelées dynamiquement pendant l'éxecution du programme.

Pour appeler une API dans une procédure Visual Basic , il faut obligatoirement la déclarer.Cette déclaration se fait pas une instruction "Declare" Placée dans un module.

Intérêts des DLL.

Les DLL réalisent des taches impossibles avec Visual Basic, améliorent les performances du programme et ont une vitesse d'éxecution très rapides.

- Les DLL de Windows.

Windows contient des DLL que l'on peut appeler depuis Visual Basic. Celles-ci constituent l'interface de programmation Windows ( API Windows).

Les bibliothèques de l'API Windows de la version 32 bits du système d'exploitation (windows 95, windows NT) se compose de trois DLL : User32, GDI32, Kernel32.

La bibliothèque "User32.dll " prend en charge les taches de gestion des fenêtres, des menus, des contrôles, des boîtes de dialogue..

Exemple: On peut appeler la procédure "Flashwindow" de la bibliothèque "User32.dll" pour faire clignoter une fenêtre.

La bibliothèque "Gdi32.DLL" gère les sorties graphiques.

La bibliothèque "Kernel32.dll" prend en charge les tâches du système d'exploitation.

Exemple : on peut appeler la procédure "Getwindowsdirectory" de la bibliothèque "Kernel32.dll" pour obtenir le chemin du dossier Windows.

Application : Programme détectant le nom du dossier Windows à l'aide de l'API "GetwindowsdirectoryA".

- Sélectionner la commande Nouveau projet dans le menu Fichier ou appuyez sur Ctrl+N.

- Insérer un contrôle "TextBox" et un contrôle "CommandButton" dans la feuille du projet.

Contrôles Name
CommandButton Command1
TextBox Text1

Quide de développement.

Voici la déclaration de l'API "GetwindowsdirectoryA" et sert à détecter le nom du dossier "windows". Cette API est disponible dans la bibliothèque "Kernel32.dll" fournie avec Windows.

Avant d'utiliser cette API il faut tout d'abord la déclarer dans un module que l'on doit ajouter au projet.

Double-cliquer sur le menu "Projet", sélectionner "Ajouter un module"et ouvrir "Nouveau module" puis saisisser les lignes de codes suivantes.

Declare Function cherche Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Ici on déclare la procédure "cherche" sous le nom de l'API "GetWindowsDirectoryA" qui existe dans la bibliothèque (Lib) "Kernel32" de windows . L'instruction Alias Indique que la procédure appelée (cherche) possède un autre nom dans la DLL qui est "GetWindowsDirectoryA".

L'API "GetWindowsDirectoryA" à besoin de deux paramètres ( lpBuffer et nSize ) pour fonctionner.

"Byval lpBuffer As string" fait passer la valeur de l'argument "lpBuffer" à la procédure "cherche" et déclare cet argument en tant que chaîne de caractères.

"ByVal nSize As Long" fait passer la valeur de l'argument "nSize" à la procédure "cherche" et déclare cet argument en tant qu'entier long (Long).
A la fin de la déclaration, on trouve la déclaration "As Long"qui veut dire que la fonction "cherche" elle même est de type entier long (Long), c'est à dire que le résultat de la fonction "cherche" est un entier long.

Double-cliquer sur le bouton "Command1" pour saisir le code qui lui est attaché.

Private Sub Command1_Click()
Dim dossier As String
Dim taille As Long
Dim rep as string dossier = String(255, 0)
taille = cherche(dossier, Len(dossier))
rep = Left(dossier, taille)
Text1.Text = rep
End Sub

L'instruction dossier = String(255, 0) renvoie à la variable "dossier" une chaîne vide (0) de 255 caractères.

N.B :

Les codes de caractères de type String sont compris entre 0 et 255. Les 128 premiers caractères (0 à 127) du jeu de caractères correspondent aux lettres et symboles d'un clavier américain standard. Ces 128 caractères sont identiques à ceux du jeu de caractères ASCII. Les 128 caractères suivants (128 à 255) représentent des caractères spéciaux, comme les lettres de certains alphabets, les accents, les symboles monétaires et les fractions.

L'instruction taille = cherche(dossier, Len(dossier)) renvoie à la variable "taille" la longueur de la chaîne représantant le chemin du dossier windows. C'est que la fonction "cherche" qui représente ici l'API "GetWindowsDirectoryA" écrit dans la variable "dossier" de longueur 255 (Len(dossier) = 255) le nom du chemin de notre répertoire Windows et elle renvoie le nombre de caractères représantant ce chemin à une autre variable "taille".

Linstruction rep = Left(dossier, taille) délimite, à partir de l'extrémité gauche ( left) de la chaîne "dossier", une sous-chaîne de caractères dont la longueur est égale au nombre de caractères représentant le chemin du répertoire Windows. C'est un coup de ciseau pour ne retenir de la chaîne "dossier" que la partie pleine.

Exemple

dossier = "C:\windows-------------------------------"

taille = 10.

rep = C:\windows

"---------": chaîne vide

L'instruction Text1.Text = rep affiche dans la zone de texte "Text1" le contenu de la variable "rep" qui n'est autre que le chemin du répertoire windows.

- Télécharger le programme.
  • Par Ahmed Attaouile *

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_DARKSIDIOUS
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
82 -
C'est un très bonne explication, bravo, 9/10

DARK SIDIOUS
ScRiPtLoVer
Messages postés
13
Date d'inscription
dimanche 23 février 2003
Statut
Membre
Dernière intervention
13 mars 2008
-
Exact trés Bonne explication!! 10/10
rien a dire !!
@+
ScRiPtLoVer
Messages postés
13
Date d'inscription
dimanche 23 février 2003
Statut
Membre
Dernière intervention
13 mars 2008
-
Exact trés Bonne explication!! 10/10
rien a dire !!
@+
cs_nov
Messages postés
1
Date d'inscription
mercredi 17 décembre 2003
Statut
Membre
Dernière intervention
17 décembre 2003
-
Et comment fait on, lorsque la fonction comporte dans ces parametres des structures, pour déclarer les structures ???
Exemple : la fonction createProcess dans kernel32 comporte des structures comme SECURITY_ATTRIBUTES
Je n'arrive pas à trouver la définition des structures.

Merci par avance.
squalyl
Messages postés
26
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
30 décembre 2003
-
c'est niveau initié , ca?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.