COMMENT
CREER UNE LIBRAIRIE POUR Tcl ?
(Partie 1)
(Mise à jour le 09/10/2000
- pour tout problèmes, remarques et suggestions contacter
christian.buil@wanadoo.fr).
Cette page décrit comment créer
une librairie de fonctions écrites en langage C, pouvant
être appelées à partir d'un script Tcl et compatibles
avec le système Audela. On appelle aussi
une telle librairie, une extension dans le jargon Tcl. Une fois l'extension écrite,
ces fonctions deviennent des mots clefs utilisables depuis par exemple
la ligne de commande d'un logiciel comme Audace. L'exemple
choisi dans cette première partie est très basique
et pas nécessairement très utile. Le propos est simplement
ici de montrer pas-à-pas le mécanisme pour produire
une librairie C compatible Tcl/Tk. A partir de l'ossature de cet
exemple il vous sera facile de l'étendre avec vos propres
fonctions de calcul ou de traitement d'images. La seconde
partie de cet apprentissage d'écriture d'une librairie est
une introduction plus concrète à la mise en place
de fonctions de traitement d'images. Notre petite librairie
d'exemple ne va contenir pour l'instant que deux fonctions de calcul.
Vu depuis la ligne de commande de Audace par exemple elles auront
pour nom qm_jd
et qm_dms2deg.
La première permet de convertir une date en jour Julien,
la seconde permet de convertir un angle défini en degrés/minutes/secondes
en degrés décimaux. Basiquement, une bibliothèque
de fonctions C pour Tcl se présente sous la forme d'une Dynamic Link Library
(DLL). Le mécanisme de construction est somme toute assez
simple, et sera toujours similaire pour toutes les bibliothèques
appelées depuis Tcl. La seule petite difficulté réside
dans le procédure permettant d'interfacer vos fonctions C
avec l'interpréteur Tcl. Même si vous ne comprenez
pas tout ce qui suit, quelques couper/coller permettrons d'obtenir
le canevas de votre bibliothèque et de la faire vivre ensuite.
Quelques connaissances en langage C sont bien sur nécessaires.
L'exemple sera développé en Visual C++ version 6.0
(Microsoft), mais tout environnement de programmation permettant
de générer une DLL sous Windows pourra être
utilisé (les outils Borland par exemple).
Nota : au lieu de taper toutes les lignes
de code qui vont suivre vous pouvez télécharger l'ensemble
des fichiers sources et les librairies permettant de créer
notre projet d'exemple en cliquant
ici (fichier libqm.zip
de 85Ko).
Mais un bon apprentissage nécessite
de faire un peu d'effort... Etape 1: Visual C++ 6.0
Depuis l'environnement Visual C++ lancez la commande New... accessible
dans le menu File
comme le montre la figure ci-après :
Etape 2: Créer le projet de librairie La boîte
de dialogue New
apparaît à l'écran. Dans l'onglet Projects sélectionnez
Win32 Dynamic-Link Library (voir la figure suivante). Donnez un nom à
la librairie à la rubrique Project
name. Nous allons donner le nom LIBQM
à la librairie (bien sur vous pouvez choisir tout autre nom,
ici QM
est l'abréviation de QuickMiPS, un programme bien connu de
certains utilisateurs de caméras CCD). A la rubrique Location indiquez
le répertoire à partir du quel va être stocker
votre projet. Cliquez sur OK. Dans la fenêtre d'aide qui apparaît choisissez
de créer une Empty DLL. Vous venez de produire l'ossature du projet.
(1/6) |