Membres inscrits :598
Membres en ligne : 0
Invités en ligne : 5


|
| Conversation : Exécuter un programme externe dans une frame |
Eldrad (Nouveau membre)
Inscrit le : 17-12-2009
Messages: 4
Snippets: 0
Tutoriels: 0
Hors ligne |
Bonjour à tous,
Je souhaiterais lancer un programme depuis un autre programme en l'affichant en MDI. Dans l'esprit ce serait faire quelque chose de similaire à Google Chrome où chaque onglet est en fait un programme fils de la frame principale. Ca me permettrait de faire un frontend.
Je sais que ça a l'air un peu compliqué comme ça, mais si quelqu'un a une idée à la façon de faire ça, ce serait sympa 
Merci.
| |
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1147
Snippets: 23
Tutoriels: 6
Site web
Hors ligne |
Salut.
Il faudra (à mon avis) que tu utilises les wxThreads (un par programme à lancer).
Ensuite, tout dépend des programmes à lancer eux-mêmes : - S'il s'agit de progs wxWidgets (ou juste c++) que tu as fais toi-même, tu peux par exemple les placer dans une dll, etles lancer depuis l'application principale. - S'il s'agit de programmes externes, tu peux de faire une classe "document" qui les lance et capture le résultat "en live" afin de l'afficher.
Donne-nous un peut plus de précisions, qu'on puisse mieux t'orienter.
@+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà...
|
Eldrad (Nouveau membre)
Inscrit le : 17-12-2009
Messages: 4
Snippets: 0
Tutoriels: 0
Hors ligne |
Merci pour ta réponse. En fait je souhaite faire un logiciel d'édition pour de la visualisation 3D. Je tente de prototyper l'approche suivante et tester sa faisabilité: il y aurait d'un coté le programme de visualisation affichant la 3D et de l'autre l'interface graphique pour modifier le monde en 3D. Les deux communiqueraient par réseau.
L'intérêt à terme serait de pouvoir communiquer à distance à une machine embarquée qui afficherait la visualisation 3D. Mais en local pour notre logiciel d'édition, j'aimerais pouvoir intégrer la visualisation dans l'édition. Mon souci est de pouvoir intégrer la frame d'un programme dans une autre. Ceci dit si ce n'est pas possible je me contenterais de multiples fenetres flottantes à la Gimp.
| |
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1147
Snippets: 23
Tutoriels: 6
Site web
Hors ligne |
Donc, il s'agit bien de progs que tu vas faire toi-même.
Pour ma part, je tenterais l'approche suivante : Chaque "sous-programme" (l'édition, la visualisation, ...) serait placé dans une dll et serait considéré comme un "plugin" de l'application principale qui ne comporterais qu'un contrôle d'onglets. Au lancement de l'application, cette dernière irait voir dans un sous-dossier afin de lister les "plugins" dont elle dispose. Pour chaque plugin, un onglet serait créé et afficherait ce que le plugin doit faire (l'édition ou la visualisation). Dans le cas d'une communication "à distance", les deux versions de l'application ne posséderaient pas les mêmes plugins : l'une aurait celui de l'édition, et l'autre, celui de la visualisation.
Je ne sais pas si j'ai été assez clair sur le principe : si tu as besoin de plus de précisions, n'hésites pas.
@+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà...
|
Eldrad (Nouveau membre)
Inscrit le : 17-12-2009
Messages: 4
Snippets: 0
Tutoriels: 0
Hors ligne |
L'approche DLL est un peu différente de ce que je voulais faire (via réseau). Je souhaitais plutôt avoir des programmes indépendants sans dépendance de code, pour pouvoir les tester indépendamment et réduire les bugs. L'approche réseau j'y tiens pour nos systèmes embarqués, mais je peux toujours rajouter une couche DLL pardessus.
| |
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1147
Snippets: 23
Tutoriels: 6
Site web
Hors ligne |
Eldrad a écrit:L'approche DLL est un peu différente de ce que je voulais faire (via réseau). Les deux ne sont pas incompatibles. Eldrad a écrit:Je souhaitais plutôt avoir des programmes indépendants sans dépendance de code, pour pouvoir les tester indépendamment et réduire les bugs. Rien ne t'empêche, dans un premier temps, de créer une application "conteneur" basique, qui ne fait qu'initialiser la dll que tu es en train de coder. De toute façon, tu peux très facilement faire une dll "autonome", et l'application ne sert qu'à fournir la fenêtre parente des contrôles de cette dll dans un premier temps. Eldrad a écrit:L'approche réseau j'y tiens pour nos systèmes embarqués, mais je peux toujours rajouter une couche DLL pardessus. Tu peux même faire en sorte que, quand tes dll sont prêtes, ça soit l'application qui s'occupe de la couche réseau, en récupérant la sortie (graphique, texte, ...) de la dll concernée, et en l'envoyant à l'autre application qui s'y est connectée via le réseau.
Je t'ai suggéré cette approche par dll afin justement de bien pouvoir différencier le code de chaque "sous-programme" : - tu démarres avec une application conteneur "basique" - tu codes le minimum vital pour la première dll (l'édition) => tu n'as donc pas à t'occuper de l'application principale si tu utilises un chargement dynamique de ta dll (et non un linkage direct de l'application avec la dll). - tu peux dès que tu en as envie (ou besoin), passer au codage de la dll de visualisation (sur le même principe que ci-dessus) - il est même possible de bosser à plusieurs : les dll étant autonomes, une fois que l'application conteneur est faite, chacun en récupère une version et se charge de sa dll - quand tout est ok, il ne reste plus que la couche réseau à mettre en place, et le tour est joué.
Il y a sans doute d'autres méthodes pour réaliser ce que tu veux faire, mais je pense que cette approche est plus aisée à mettre en place qu'un système "document mdi".
Un autre avantage de cette méthode, c'est qu'elle fonctionne sous Windows et sous Linux (pour Mac, je ne sais pas car je n'ai jamais eut l'occasion de pouvoir tester).
Ce n'est malgré tout que mon avis, et je ne suis pas programmeur professionnel. En tout cas, le projet a l'air très intéressant.
Bonne chance, et n'hésites pas à nous tenir au courant, voir même à nous indiquer la méthode retenue : ça pourra servir à d'autres.
De même, si tu as besoin d'un coup de main pour démarrer, ou pour quoi que ce soit, tu sais dorénavant où nous trouver 
@+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà...
|
Eldrad (Nouveau membre)
Inscrit le : 17-12-2009
Messages: 4
Snippets: 0
Tutoriels: 0
Hors ligne |
Merci pour toutes tes explications, je pense que c'est sûrement ce qui est le plus simple.
| |
|
|