Mercredi, 27 Novembre 2024 532941 visites depuis le 01/08/2008.
Horloge MF
Créer son Plugin
Dans cette section, je ne vais pas vous apprendre à programmer, mais à créer votre propre plugin pour le programme Horloge MF, donc si vous ne maitrisez aucun langage de programmation ( ici, on traitera du C/C++ ), je vous conseille de vous rendre sur le Site du Zéro.
Afin que le plugin soit valide, celui-ci doit contenir 2 fonctions importantes dans son code source.
Voici les prototypes :
char * getName();
void plugin();
La première fonction retournera juste le nom du plugin, celui qui sera affiché dans le menu "Plugins" du programme.
Le deuxième sera la fonction principale du plugin, autant dire le "main" de votre programme.
Le plus dur ne réside donc pas dans l'écriture de ces fonctions, mais dans le fait d'inclure ces fonctions dans une librairie dynamique, c'est à dire de compiler votre code en *.dll pour Windows.
Pour cela, il faudra rajouter, et modifier quelques lignes dans le programme.
Tout d'abord, il faudra rajouter une macro tout au début de votre programme :
#define DLL_EXPORT __declspec(dllexport)
Ceci aura donc pour but de remplacer dans le code source tous les mots "DLL_EXPORT" par "_declspec(dllexport)" afin d'en alléger l'écriture.
La deuxième modification consiste donc dans l'écriture des prototypes de nos deux fonctions.
Voici maintenant à quoi elles doivent ressembler :
Il faut savoir qu'une DLL comporte une sorte de header ( en-tête ) contenant la liste des fonctions qu'elle contient.
Le soucis, c'est quee lorsqu'on compile en C++, les noms de vos fonctions vont être décorées :
getName() deviendra par exemple _getName@0().
Le programme, recherchant la fonction getName(), n'arrivera donc pas à retrouver notre fonction originale dans la DLL.
C'est donc pour cela qu'il faut rajouter devant le prototype de nos fonctions :
extern "C"
Ajouter la macro "DLL_EXPORT", ou directement "_declspec(dllexport)" indique donc que cette fonction sera contenue dans une DLL et sera donc accessible depuis l'extérieur de la librairie.
La phase finale maintenant est donc la compilation de cette DLL.
Il suffit juste lors de l'édition des liens de rajouter l'option -shared afin de préciser au compilateur que ceci sera une librairie dynamique, et ne pas oublier aussi de changer l'extension du fichier de sortie en *.dll.
Ajouter ensuite votre fichier dans le dossier "plugin", redémarrez le programme, et votre DLL devrait apparaître dans le menu "Plugins" avec le nom renvoyé par la fonction "getName()".
Lorsque vous cliquerez dessus, le programme ne fera que exécuter la fonction "plugin()" contenue dans votre DLL ( si elle existe ). Dans le cas contraire, un message d'alerte sera indiqué.
Voilà un exemple de programme simple, le "Hello World!" classique, écrit pour fonctionner en tant que plugin pour l'Horloge MF :
Voilà, maintenant vous savez comment faire un plugin pour l'Horloge MF, alors je compte sur vous pour me donner un petit coup de main. ;)
A noter qu'on peut écrire un plugin dans un autre langage tant que le prototype des fonctions restent les mêmes.
Si vous avez des questions ou remarques, n'hésitez pas à me contacter à cette page.