Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1652 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C++ manage][framework 1.1]Plantage avec le FolderBrowserDialog

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++ manage][framework 1.1]Plantage avec le FolderBrowserDialog

n°1287791
cervantes
Posté le 19-01-2006 à 18:25:35  profilanswer
 

Slt,
 
J'utilise dans un WindowsForms un FolderBrowserDialog et j'ai un problème avec. J'ai un message d'erreur qui apparait quand je sélectionne un path trop long. (le plantage arrive dès que je sélectionne le répertoire avec la souris, avant meme que je fasse "OK" dans la boite de dialogue).
 
Le message c'est ca:  
 

Citation :

Exception non gérée à 0x7848144b dans Outils Spectra.exe:Point d'arrêt utilisateur.
 
arreter, continuer, aide


 
Peut on faire quelquechose contre cette erreur?
Avec ces path, le FolderBrowserDialog plante:
 

Citation :

C:\Répertoire\répertoire 1\kjsbdkjfbhdsjfldsfsdugfpsdugfpsdiufgsdiufgvsdifuvsdifdsfvdodhgjdkfbgkldfbglbdfbgfdbligbdffghfghgfhgfhfghfghgfhfgh
C:\Répertoire\répertoire 1\répertoire 2\répertoire 3\répertoire 4\répertoire 5\répertoire 6\répertoire 7\répertoire 8\répertoire 9


 
j'ai essayé avec

Citation :

C:\Répertoire\répertoire 1\répertoire 2\répertoire 3\répertoire 4\répertoire 5\répertoire 6\répertoire 7


 
et là ca marche. (Bon c'est juste des exemples donc les noms de répertoire sont bidons.)
J'ai essayé ces path avec ou sans accents et ca plante quand meme. Le plus étrange dans l'histoire, c'est que si j'ouvre un fichier qui se trouve dans l'un des répertoires ci-dessus avec un "openfileDialog", et bien là ca plante pas. Bizarre........

mood
Publicité
Posté le 19-01-2006 à 18:25:35  profilanswer
 

n°1287800
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 19-01-2006 à 18:34:15  profilanswer
 

on est tellement devins qu'on va pouvoir t'aider sans que tu postes de code


---------------
J'ai un string dans l'array (Paris Hilton)
n°1287815
cervantes
Posté le 19-01-2006 à 18:48:43  profilanswer
 

C'est vrai que je l'ai pas mis, mais vu que ya que 2,3 lignes...
 
Voici mon code:
 

Code :
  1. this->buttonOpenFolder->Click += new System::EventHandler(this, &OutilsSpectra::Fiche_FT_to_FC::buttonOpenFolder_Click);
  2. [...]
  3. void OutilsSpectra::Fiche_FT_to_FC::buttonOpenFolder_Click(System::Object*  sender, System::EventArgs*  e)
  4. {
  5.     System::Windows::Forms::DialogResult result = this->folderBrowserDialog1->ShowDialog();
  6. }


 
normalement il est prévu que je fasse autre chose avec "result" mais vu que rien qu'avec ca j'ai des plantages, j'ai rien mis d'autre.


Message édité par cervantes le 19-01-2006 à 18:49:35
n°1287827
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 19-01-2006 à 18:55:46  profilanswer
 

le FolderBrowserDialog est un wrapper de l'API Win32 SHBrowserForFolder, qui prend en argument un pointeur vers une structure BROWSEINFO (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/structures/browseinfo.asp)
Si tu regardes le champ pszDisplayName de cette structure, tu apprends que la valeur maximale du nombre de caractères autorisé est MAX_PATH, donc 256 caractères.
ceci explique peut etre celà


Message édité par Harkonnen le 19-01-2006 à 18:56:42

---------------
J'ai un string dans l'array (Paris Hilton)
n°1287928
cervantes
Posté le 19-01-2006 à 21:36:38  profilanswer
 

C'est vrai que c'est aussi la première idée qui m'est venu à l'esprit, la longueur du path est peut etre trop longue. Néanmois cela me rend quand meme perplexe vu que le meme path est très bien accepté par un openFileDialog. D'autre part, si je reprends mon exemple de:
 

Citation :

C:\Répertoire\répertoire 1\répertoire 2\répertoire 3\répertoire 4\répertoire 5\répertoire 6\répertoire 7\répertoire 8\répertoire 9


 
qui ne passe pas avec folderBrowserDialog, celui-ci est loin de faire 256 caractères.  
 
 :??:  
 
En supposant que la taille de mon path est bien la source de mon probleme, comment limiter davantage la taille du path de telle manière que je n'ai plus de crash de mon ihm?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C++ manage][framework 1.1]Plantage avec le FolderBrowserDialog

 

Sujets relatifs
[socket] plantage sur les specifications du socket sous linux en C++2 formulaires en asp.net framework 2.0
A quoi sert le process RWRBE60.EXE du client Oracle (plantage)plantage application sous java
Plantage sur une desallocation d'une structure sous Windows 2003Xalan, plantage réguiler
Plantage de script shellframework pour la conception d'interface utilisateur
Plantage Excel lors d'appel fonctions perso C++-COM[PHP] Utiliser un framework MVC ?
Plus de sujets relatifs à : [C++ manage][framework 1.1]Plantage avec le FolderBrowserDialog


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR