Tout est dans le titre !
voici le code (simplifié) du client SOAP
je voudrais récuperer le message d'erreur et l'afficher dans une fenêtre !
voici le code de la fenêtre (code trouvé dans un tutoriel)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 #include "clientH.h" #include "client.nsmap" #include <string> #include "hworld.h" #include <wx/wx.h> using namespace std; struct Namespace *namespaces; int main(int argc,char *argv[]) { std::string v_chaine; std::string adresse =(string)argv[1]; string titreFenetre="Erreur"; string message="test21"; struct soap v_soap; soap_init(&v_soap); v_soap.connect_timeout = 10; soap_set_namespaces(&v_soap, client_namespaces); soap_call_ns__serverEPN(&v_soap, adresse.c_str(), "",argv[2],argv[3],argv[4],&v_chaine) == SOAP_EOF; if(v_soap.error) { MyFrame *msgBox= new MyFrame(wxString(titreFenetre.c_str(),wxConvUTF8,titreFenetre.length()),wxPoint(50,50),wxSize(250,150),message); msgBox->Show(TRUE); soap_print_fault(&v_soap, stderr); } cout << "Chaine=[" << v_chaine << "]\n"; soap_end(&v_soap); system("pause"); return(0); }
et voici le fichier.h de la fenêtre (trouvé également dans ce tutoriel)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 // Fichier hworld.cpp #include "hworld.h" #include <wx/string.h> #include <wx/strconv.h> // Déclarations de la table des événements // Sorte de relation qui lit des identifiants d'événements aux fonctions BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_BUTTON(ID_Bt_Click, MyFrame::OnClickButton1) END_EVENT_TABLE(); // Code de l'initialisation de l'application bool MyApp::OnInit() { // On crée une instance de la classe MyFrame MyFrame *frame = new MyFrame( wxT("Erreur SOAP"), wxPoint(50,50), wxSize(250,100) ); //MyFrame *frame = new MyFrame(wxT("test"),50,50,250,100); // On la rend visible frame->Show(TRUE); SetTopWindow(frame); return TRUE; } // Construction de la fenêtre. Elle ne contient qu'un bouton. MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size,string texte) : wxFrame((wxFrame *)NULL, -1, title, pos, size) { letexte = new wxTextCtrl(this,-1,wxString(texte.c_str(),wxConvUTF8,texte.length()+1),wxDefaultPosition,wxDefaultSize,wxTE_READONLY); } /* // Fonction qui est exécutée lors du click sur le bouton. void MyFrame::OnClickButton1(wxCommandEvent& WXUNUSED(event)) { . wxMessageBox(wxT("C'est un Hello world wxWindows par Nico "),wxT( "Hello World"), wxOK | wxICON_INFORMATION, this); }*/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 // Fichier hworld.h // Indispensable pour faire des wxwidgets : #include "wx/wx.h" #include <string> // On doit créer un identifiant pour chaque évenement // Ceci permettra, par exemple, d'associer un même // évemenement à deux boutons #define ID_Bt_Click 1 using namespace std; //Déclaration d'une classe MyApp (Mon application) dérivée de wxApp class MyApp: public wxApp { virtual bool OnInit(); }; //Déclaration d'une classe MyFrame (Ma fenetre principale) dérivée de wxFrame class MyFrame: public wxFrame { public: //Constructeur de la fenetre : MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size, string texte=""); //MyFrame(const wxString& title, int xpos, int ypos, int width, int height); //Fonction qui sera appelé lorsque l'utilisateur cliquera sur le MonBouton1 void OnClickButton1(wxCommandEvent& event); // Boutton 1 wxButton *MonBouton1; //TExte wxTextCtrl *letexte; // C'est la table qui est écrite dans le fichier cpp DECLARE_EVENT_TABLE() }; // Sorte de main ... //IMPLEMENT_APP(MyApp)
commande de compilation des fichiers SOAP :
commande de compilation pour la fenêtre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 g++ -c clientC.cpp clientClient.cpp client.cpp g++ -o client client.o clientClient.o clientC.o -lgsoap++ -lpthread
comment combiner tout ça?
Code : Sélectionner tout - Visualiser dans une fenêtre à part g++ HelloWorldApp.cpp `wx-config --libs` `wx-config --cxxflags` -o HelloWorldApp
merci à ceux qui prendront le temps de répondre ;-)
Partager