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 !



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);	
 
}
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
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);
 
}*/
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
 
// 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 :
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
commande de compilation pour la fenêtre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
g++ HelloWorldApp.cpp `wx-config --libs` `wx-config --cxxflags` -o HelloWorldApp
comment combiner tout ça?


merci à ceux qui prendront le temps de répondre ;-)