Membres inscrits :2359
Membres en ligne : 0
Invités en ligne : 2


|
Conversation : Template / Patron d'application console |
guyothomas (Membre)
Inscrit le : 05-06-2008
Messages: 66
Snippets: 0
Tutoriels: 0
Hors ligne |
Bonjour, et bonne wxAnnée à toutes et à tous.
Xaviou, que cette année soit prospère pour tes projets et notamment ce site! Je te remercie vivement pour tous les efforts que tu fais, et particulièrement pour l'installeur de libs et l'assistant de nouveau projet que j'utilise régulièrement. Par contre, y a t-il un moyen simple pour utiliser le résultat de cet assistant pour obtenir une application de type console (wxConsoleApp)??
J'ai essayé succinctement mais sans résultat. Quelqu'un a-t-il une idée? Je vous remercie,
wxThomas.
|
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
Hello
En attendant que je trouve le temps de me pencher sur l'assistant pour le modifier (et peut-être le compléter, depuis le temps ) : tu utilises quelles options ? - Windows / Linux (je suppose que c'est Windows, comme la partie Linux de l'assistant n'a jamais été finalisée) - Code::Blocks / Visual C++ Avec ces infos, je pourrais faire le test et te donner les modifs à apporter au projet de base pour une app console.
@+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà ... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
guyothomas (Membre)
Inscrit le : 05-06-2008
Messages: 66
Snippets: 0
Tutoriels: 0
Hors ligne |
Re-salut Xaviou, Pour moi c'est windows et Visual Studio. j'ai cherché un peu sur la toile mais j'ai rien trouvé comme template.
|
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
Bon, je viens de faire le test avec les paramètres suivants : - Code::Blocks sous Windows - wxWidgets 2.8.10 - Unicode - Libs dynamiques
Après avoir créé le projet avec l'assistant du site, voici la méthode à suivre pour obtenir une application console : - Supprimer les fichiers correspondants à la wxFrame - Supprimer le code de création de la frame dans le OnInit() de l'application, ainsi que l'include du header de cette frame - Dans le menu "Project" => "Properties", onglet "Build targets", passer le type d'application à "Console Application" pour les deux cibles (Debug, Release) - Éventuellement, cocher la case "Pause when execution ends" pour les deux cibles - Dans le menu "Project" => "Build options", onglet "Linker settings", ne laisser que la lib wxBase pour les deux cibles (Debug, Release) - Modifier le code de l'application de la façon suivante :
Tout d'abord, la classe dont dérive notre application n'est plus wxApp, mais wxAppConsole La macro de déclaration, dans le fichier cpp, n'est plus IMPLEMENT_APP mais IMPLEMENT_APP_CONSOLE (par contre, la macro DECLARE_APP optionnelle ne change pas) Il faut, en plus de la méthode "OnInit()", ajouter une méthode "OnRun()" dans laquelle devra être placé le code principal à exécuter La méthode OnInit reste à utiliser pour les initialisations, et si elle retourne false, l'exécution s'arrêtera.
Ce qui donne : Header de la classe d'application
Code wxWidgets:#ifndef MYTESTAPP_H_INCLUDED #define MYTESTAPP_H_INCLUDED #include <wx/app.h> class MyTestApp : public wxAppConsole { public: virtual bool OnInit(); virtual int OnRun(); }; #endif //MYTESTAPP_H_INCLUDED DECLARE_APP(MyTestApp);
Source de la classe d'application
Code wxWidgets:#include "MyTestApp.h" IMPLEMENT_APP_CONSOLE(MyTestApp); bool MyTestApp::OnInit() { wxPuts(_T("On est dans la fonction MyTestApp::OnInit().")); return true; } int MyTestApp::OnRun() { wxPuts(_T("On est dans la fonction MyTestApp::OnRun().")); return 0; }
La valeur retournée par la méthode OnRun() correspond au code retourné à la console à la fin de l'exécution du programme.
Voilà , j'espère que ça t'aidera. Si ce n'est pas le cas, n'hésites pas...
@+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà ... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
Oups ! J'ai mis tellement de temps à écrire ma réponse que je n'avais pas vu la tienne. Je n'ai malheureusement plus Visual C++ sous la main, mais les indications ci-dessus peuvent déjà t'aiguiller...
@+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà ... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
|