Pourquoi Delphi 1.0 ?Pourquoi ai-je choisi Delphi 1.0 pour illuster la création d'une DLL ? Tout simplement parce que Delphi 1.0 est disponible licence comprise pour la modique somme de 68F ! ( Voir les numéros Hors Séries de Presque Offert ... ). De plus le language Delphi est un language visuel évènementiel tout a fait comparable en ergonomie et en fonctionalités à Visual Basic avec l'avantage de ne pas avoir les défault de celui-ci :
- Quasi compatibilité avec le language Pascal ( Adaptation de mes sources Turbo-Pascal trés rapide ) - Possède une instruction d'accès aux ports d'entrées/sorties ( port[n°port] !!! Ne marche pas sous Win95/98 pour accéder au port // ) - Permet l'ajout de composants VCL,VBX ... pour étendre les possibilités du language à l'infinie. - Compilation du code en 16 Bits soutenu par Windows 3.1 ( et oui papy fait de la résistance ! ), Windows 3.11, Windows 95 et 98 - Permet de compiler des programmes sous forme de DLL ...
Il est fort probable que la méthode décrite ci après reste valable pour les versions plus récentes de Delphi.
Une DLL ! pour faire quoi ?Ce didactitiel détaille la création d'une DLL permettant l'accés au ports de l'ordinateur ( y compris le port // ) fonctionnant aussi bien sous Windows 3.1 que Win 95 et 98. Cette DLL donnera accés au fonctions suivantes :
Procedure OUT(Adresse du port;Valeur a écrire sur ce port) Function INP(Adresse du port que l'on désire lire) qui renvoie l'octet présent sur le port. Création de la DLL... pas à pasLancer Delphi puis créer un nouveau projet par la commande Fichier puis Nouveau Projet.
| Une vue de l'interface de Delphi 1.0 après l'ouverture d'un nouveau projet |
La Dll ne comportant pas de feuille visible il faut tout d'abord supprimer la feuille nommée FORM1 du projet ainsi que l'unité UNIT1.PAS qui lui est associée. Pour cela utilisez la commande Voir puis Gestionnaire de projet pour faire apparaitre la boite de dialogue ci dessous.
| Boite de dialogue "Gestionnaire de projet" |
Dans celle-ci cliquer sur Unit1 pour sélectionner la ligne puis sur le bouton supprimer. Voila le projet ne comporte plus aucune fenêtre et unité associée. Avant de continuer, il est impératif de sauver le projet afin de lui attribuer son nom définitif. La commande Fichier puis Enregistrez projet sous... ouvre la boite de sauvegarde.Sauvegarder le projet sous son nom définit IO.DPR. Il est alors temps de modifier le source du projet par la commandes Voir puis Source du projet pour faire apparaitre la fenêtre contenant "le source" du projet.
| Fenêtre contenant "le source" du projet |
Modifier le source comme le montre la copie d'écran ci dessous.
| "Le source" du projet modifié |
La première ligne Library io permet d'indiquer au compilateur qu'il doit produire un fichier IO.DLL au lieu d'un simple EXE. La clause Exports permet de préciser les fonctions et procédures qui seront rendue disponibles par la DLL. ( Ici INP et OUT ). La clause uses permet de préciser dans quel fichier unité se trouve ces procédures et fonctions. Celle-ci se trouve dans un fichier nommé IOUNIT.PAS qu'il nous faut maintenant créer par la commande Fichier puis Nouvelle unité.
| Une unité a été ajouté au projet |
Afin de renommer cette unité il convient d'utiliser la commande Fichier puis Enregistrer sous.... Une boite de sauvegarde apparait. Changer UNIT1.PAS en IOUNIT.PAS puis valider la sauvegarde. Modifier IOUNIT.PAS comme le montre la copie d'écran ci-dessous.
| L'implémentation des routines INP et OUT dans IOUNIT.PAS |
Notez qu'il est impossible d'exporter directement des routines écrites en assembleur ! ( les clauses Export et Assembler ne pouvant pas coexister sur la même ligne ).Mais une simple astuce de programmation permet de contourner cette limite : il suffit de créer deux fonction/procédures intermédiaire écrite en assembleur ( Procedure aout et function ainp ). Les procédures out et inp appelant celle-ci peuvent être exporté avec la clause Export Cet article n'étant pas une initiation au language pascal, je ne m'attarderais pas sur le programme ci-dessus qui ne fait rien d'autre qu'accéder aux port de l'ordinateur directement avec les instructions assembleur correspondantes. Des livres existes pour cela et l'aide en ligne de Delphi est trés bien faite ... Sachez que les différents manuels de Delphi 1.0 sont livrés sur le CD-ROM en format PDF librement imprimable.
Pour finir, revenez au source du projet IO.DPR ( cliquer sur l'onglet correspondant ... ) puis supprimer la ligne Forms, comme le montre l'écran ci dessous.
| Supprimer la ligne indiquée |
Il ne vous reste plus qu'a sauver le tout par Fichier puis Enregistrer Projet puis à compiler par Compiler puis Compiler. Vous voila en poscession d'une magnifique DLL faisant 2816 Octet et répondant au doux nom de IO.DLL
Pour ceux qui ne disposerait pas de Delphi et que la DLL interresse tout de même voici IO.DLL
Pour apprendre a utiliser cette DLL Sous Delphi Pour apprendre a utiliser cette DLL sous Visual Basic
Date de création : 28/10/2005 @ 18:04
Dernière modification : 31/01/2008 @ 07:51
Catégorie : Les DLL
Page lue 9570 fois
Prévisualiser la page
Imprimer la page
|