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'un
e 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)