Les dlls sous vb6

Description

A quoi servent les dlls ?
Les dlls servent généralement de fichiers de stockage de code compilé.
Ce code compilé devient accessible depuis n'importe quel exe.

L'avantage par rapport à utiliser des forms, modules et classes partagés dans plusieurs projets est que la mise à jour ce fait en recompilant la dll, et non en recompilant tous les exes.
Un autre intérêt peut survenir quand on fait une grosse appli: on peut compiler l'application par morceaux.

#### Création d'une dll:

Nouveau projet: "Dll ActiveX".
Mettre la propriété "Instancing" de la classe sur "GlobalMultiUse".
Cela permet d'utiliser les méthodes de cette classe depuis un exe.
Dans les propriétés du projet, dans l'onglet "Créer" cocher la case "Indentation automatique".
Cela permet à un programme d'installation de savoir s'il doit remplacer une dll déjà présente.
Renommé le projet et la classe, puis compilez la dll (Sans code !)
Dans les propriétés du projet, dans l'onglet "Composant" la case à cocher la case "Compatibilité binaire" est maintenant cochable: Cocher là !
Cela permet d'assurer la compatibilité au fil des recompilations de la dll, moyennant quelques précautions.
Il ne faut par exemple jamais supprimer une fonction, ou modifier ses paramètre (On ne peut même pas rajouter un paramètre optionel).

Pour employer les méthodes de la dll dans un exe, il faut référencer la dll.
Pour cela, dans le projet de l'exe, menu "Projet", puis "Références...".

#### Les dlls et la base de registre:

Pour fonctionner correctement, les dll ActiveX doivent être installées.
Autrement dit, il faut que des clés soient présentes dans la base de registre.
VB6 installe automatiquement la dll lors de la compilation.
Ces clés contiennent nottement le chemin d'accès de la dll.
En conséquence, une dll installée dans un répertoire ne fonctionne plus si on la déplace.
Et il est préférable de désinstaller la dll avant de la supprimer !
L'installation et la désinstallation peut ce faire via "Executer" ou le DOS.
Pour installer:
regsvr32 "CheminDeLaDll\NomDeLaDll.dll"
Pour désinstaller:
regsvr32 /U "CheminDeLaDll\NomDeLaDll.dll"

#### L'installation:

En ce qui concerne l'installation, l'empaqueteur de VB6 a mauvaise réputation.

On peut donc utiliser un autre utilitaire d'installation, par exemple Innosetup (Comment ça pas un exemple au hasard ?) :
http://www.progotop.com/dks/cours/TUTORIAL_Setup_VB6_InnoSetup_ISTools.pdf

Une autre méthode est basé sur des fichiers en langage de script, qui simule la base de registre.
Voici un lien vers un source qui automatise la création de ces fichers:
http://www.vbfrance.com/code.aspx?ID=28387

#### Le source:

Un exemple d'emplois de dll, ULTRA simple.

#### Remerciement:

DARKSIDIOUS
Qui à transcander le contenu de ce source par une remarque particulièrement pertinante !

Warny
Qui m'a expliqué comment faire des interfaces.

Conclusion :


N'oubliez pas de désinstaller la dll avant de supprimer mon source de votre disque !

Codes Sources

A voir également

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.