Bonjour,

je développe une appli qui utilise wxWidget et OpenCV. J'ai fait quelques classes mais je suis bloqué sur un problème étrange...

En effet, j'ai besoin de convertir un wxString (récupéré par une instance de wxFileDialog) vers un char* (le nom d'un fichier, utilisé dans une classe utilisant openCV...).

Mon problème est le suivant : mon char* ne contient que la premier lettre du wxString...

J'dois être aveugle, j'sens que la faute est toute conne mais j'vois pas bien quoi...

Voici mon code :

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
wxFileDialog fdlg(this,_T("Choisissez un fichier"));
wxString fichier;
 
// si annulation
if(fdlg.ShowModal()==wxID_CANCEL)
{
    return;
}
else
{
  // Sinon charge le fichier
  fichier = fdlg.GetFilename();
 
  char* nomtr =(char*) fichier.c_str();
 
  string fichierSignet = "fichier.txt";
 
  // Creation du fichier ou écrasement
  ofstream fichier(fichierSignet.c_str(), ios::trunc);
 
  /* --- Cas d'erreur d'ouverture du fichier --- */
  if ( !fichier )
  {
  cerr << "Erreur de creation du fichier" << endl;
  }
 
  fichier << nomtr << endl;
  fichier.close();
Et le fichier texte ne contient que la première lettre du Filename... :/

A noter que si j'fais un char[] ça marche pas... et que si j'met des string partout, ça foire beaucoup d'autres lignes de mon programme... gniii les chaînes de caractères et leurs conversions...

Merci de votre aide J'ai déjà eu assez de mal à trouver comment convertir un wxString vers un char*, alors je sèche...