Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/09/2008, à 06:22

mesobius

gestion de plugin pour applicatif

bonjour a tous,

j'ai commencé a developper une appli de TBI (tableau blanc interactif) pour windows sous delphi ! (désolé, j'ai encore une ame de windowsien parfois,surtout pour mon job sad  )

pour ceux qui ne connaissent pas : http://www.mesobius.com/index.php?option=com_content&task=view&id=19&Itemid=37

mais je voudrais ensuite la porter sous linux.

donc, j'ai decidé d'arreter le developpement sous delphi et de reprendre a 0 sous linux.

mon choix se porte sous C++ + QT4 qui existe sous linux & windows (faut aussi pensez a eux,les pauvres lol )

etant debutant dans la prog linux, une question me taraude :
dans mon appli, je pouvais creer des plugins (dll) pour ajouter des fonctionnlités a mon appli sans recompiler l'ensemble du code principal, ce qui permettait de faire evoluer le soft sans se prendre la tete.

Mais sous linux, comment faut-on pour gerer des plugins en C++ ? y a-t-il une lib pour ca, ou doit-on se palucher soit meme un principe et le code qui va avec ?

autre question : existe-t-il une lib qui permet de faire un langage de script interpretable ensuite depuis un appli C++ (par exemple, les plugins peuvent etre des fichiers txt avec un langage de script qu'un interpreteur decode au moment de l'execution.

si vous avez des liens sur des tutos, je suis preneur....

d'avance merci pour votre aide


Developpeur Web & applicatif multiplateformes
http://www.linuxembarque.com
http://www.mesobius.com

Hors ligne

#2 Le 24/09/2008, à 11:06

Karl_le_rouge

Re : gestion de plugin pour applicatif

1. à l'ancienne, tu utilises libdl mais pas super pratique en C++.
http://tldp.org/HOWTO/C++-dlopen/index.html
2. tu utilises l'API Qt pour créer des plugins qui est quant même nettement plus pratique
http://doc.trolltech.com/4.4/plugins-howto.html#the-lower-level-api-extending-qt-applications


Sinon, la plupart des langages de scripts (python, ruby, lua etc.) ou à VM (Java, Mono) permet d'embarquer un interpréteur/VM:
http://www.python.org/doc/ext/embedding.html
http://lua-users.org/wiki/LearningLua
http://www.mono-project.com/Embedding_Mono

Lua est probablement l'option la plus simple pour commencer (et rien ne t'interdit après tout de proposer plusieurs langages de scripts).

Hors ligne

#3 Le 25/09/2008, à 12:13

mesobius

Re : gestion de plugin pour applicatif

Merci l'ami !

je vais regarder ca
smile


Developpeur Web & applicatif multiplateformes
http://www.linuxembarque.com
http://www.mesobius.com

Hors ligne

#4 Le 25/09/2008, à 14:49

Pat AfterMoon

Re : gestion de plugin pour applicatif

Bonjour,

Je ne connais pas LUA, mais je crois qu'il a plutôt bonne réputation pour gérer des plugins.

En tout cas pour l'avoir expérimenté, j'ai trouvé Python très facile à mettre en œuvre à partir d'une application en C++. J'ai testé l'intégration de l'interpréteur dans mon application ainsi que la mise à disposition d'une API pour les scripts. Le passage de paramètres dans un sens comme dans l'autre m'a paru simple.


Notebook : Zepto Znote 6224W - dual boot Vista/Ubuntu 8.04

Hors ligne

#5 Le 25/09/2008, à 19:52

Link31

Re : gestion de plugin pour applicatif

mesobius a écrit :

etant debutant dans la prog linux, une question me taraude :
dans mon appli, je pouvais creer des plugins (dll) pour ajouter des fonctionnlités a mon appli sans recompiler l'ensemble du code principal, ce qui permettait de faire evoluer le soft sans se prendre la tete.

Pour ça il y a déjà les bibliothèques dynamiques. La différence avec les plugins est qu'on ne peut pas les charger et décharger à volonté, mais ça peut aussi être un avantage, vu qu'on n'a pas à écrire le code de chargement de la bibliothèque. Et comme pour les plugins, il est possible de changer l'implémentation sans recompiler tout le programme tant que l'interface ne change pas.

En plus, les bibliothèques dynamiques sont très faciles à générer sous Linux. En gros, il suffit de passer les options "-shared -fPIC" à gcc au moment de compiler la bibliothèque (appelons-la libexample.so). Puis il faut passer l'option "-lexample" (L minuscule suivi du nom de la bibliothèque, sans lib- et .so) au moment de compiler l'exécutable final.

Dernière modification par Link31 (Le 25/09/2008, à 19:54)

Hors ligne

#6 Le 08/10/2008, à 08:34

mesobius

Re : gestion de plugin pour applicatif

je relance mon topic, car une question me taraude :

les langages que vous avez cités (ULA et RUBY entre autres) semble être des langages de script independant, qui permet de faire des progs sans se prendre la tete avec le C++

par contre, j'arrive pas a voir comment integrer ca dans mon appli, de maniere a donnée la possibilité à l'utilisateur un peu averti d'ecrire un plugin avec un tel langage qui s'interface avec mon appli et mes fonctions.

je saisie pas le principe du truc.

moi ce que je vise c'est
- mon appli est fourni et le code ne doit pas changer en cas d'evolution.
- il manque une option a mon appli.
- l'utilisateur ecrit en script un code et le sauve au format texte.
- il ouvre le script depuis mon appli (donc le fichier texte) et peut utiliser la nouvelle fonction qu'il vient de developper et qui interagie avec les fonctions et l'environnement de mon appli

c'est surement possible de faire ca avec lua et ruby, mais j'ai pas saisie (ou pas trouver) comment faire?

Help


Developpeur Web & applicatif multiplateformes
http://www.linuxembarque.com
http://www.mesobius.com

Hors ligne

#7 Le 08/10/2008, à 15:23

mesobius

Re : gestion de plugin pour applicatif

On vient de me conseiller QTScript. cela semblerai être une bonne solution

par contre, est-ce que quelqu'un a dejà joué avec ca ?

(note: Merci Mikeul)  wink


Developpeur Web & applicatif multiplateformes
http://www.linuxembarque.com
http://www.mesobius.com

Hors ligne