[Débutant] créer une fenêtre wxWindow affichant un message d'erreur SOAP

kenibou Messages postés 2 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 23 avril 2007 - 23 avril 2007 à 10:20
kenibou Messages postés 2 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 23 avril 2007 - 23 avril 2007 à 10:22
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 !


----------------------------
#include "clientH.h"
#include "client.nsmap"
#include <string>
#include "hworld.h"
#include
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)
// Fichier hworld.cpp

#include "hworld.h"
#include
#include
// 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)


// 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 :
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 :
g++ HelloWorldApp.cpp `wx-config --libs` `wx-config --cxxflags` -o HelloWorldApp

comment combiner tout ça?


merci à ceux qui prendront le temps de répondre ;-)</string></string>

1 réponse

kenibou Messages postés 2 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 23 avril 2007
23 avril 2007 à 10:22
désolé pour la mise en page...
ou est le bouton d'édition? ;-)
0
Rejoignez-nous