Précédent   Forum du club des développeurs et IT Pro > C et C++ > C++
C++ Forum d'entraide technique sur le langage C++. Avant de poster -> F.A.Q C++
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 05/01/2013, 21h44   #1
cybermichel
Invité de passage
 
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 5
Points : 1
Points : 1
Par défaut wchar_t contenant une chaine avec parentheses

Mon nom de fichier est "C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Microsoft\Media Player\Cache d’images\LocalMLS\{2C0A022A-D857-4EBB-A139-C3F9E4FB1961}.jpg"

Je recupere le fichier de cette facon, ce qui ne pose aucun probleme pour des noms de fichiers sans parenthese.

Code :
1
2
3
4
5
6
7
int main(int n,char *params[])
{
wchar_t fichier_source[1024];
char* fichier=params[1];
mbstowcs(fichier_source,fichier,1023);
///  puis traitement par gdiplus
}
Je pense que les parenthèses posent le probleme, si quelqu'un pouvait m'aider ou me mettre sur une piste.
Merci d'avance.
cybermichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2013, 13h43   #2
imperio
Membre éclairé
 
Avatar de imperio
 
Homme Guillaume Gomez
Étudiant
Inscription : mai 2010
Messages : 161
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Gomez
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2010
Messages : 161
Points : 329
Points : 329
Je ne vois pas vraiment pourquoi tu utilises cette fonction mais tu dois en avoir l'utilité... Pourquoi ne pas envoyer directement params[1] dans ta fonction ? Je l'ai testé de mon côté et le problème ne vient pas de là. Tu as quoi comme résultat dans fichier_source ?
imperio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2013, 14h01   #3
cybermichel
Invité de passage
 
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 5
Points : 1
Points : 1
Merci de ta réponse.
Je lance l'executable depuis une ligne de commande et gdiplus ne fonctionne pas avec des char, d'où l'utilite de le convertir en wchar_T.
Ensuite redimensionnement + filtres, etc... sur l'image.
Je debute en c++ et j'ai déjà créé pas mal de fonctions qui marchent tres bien dont celle ci sauf qu'avec ce nom de fichier, il ne se passe rien, l'exe se lance puis se referme.
Dans char *fichier je recupere bien le nom de fichier avec des doubles slash. Par contre je n'arrive pas a afficher le resultat de fichier_source avec messagebox puisque messagebox necessite un char donc je suis un peu coincé pour debugger.
cybermichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2013, 14h37   #4
imperio
Membre éclairé
 
Avatar de imperio
 
Homme Guillaume Gomez
Étudiant
Inscription : mai 2010
Messages : 161
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Gomez
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2010
Messages : 161
Points : 329
Points : 329
Tu fais une boucle et tu affiches chaque valeur en la castant en char avec std::cout. C'est ce que j'ai fait et ça a marché parfaitement, c'est pour ça que je pense qu'il y a un problème ailleurs dans ton code. Tu sais à quel endroit il plante ?
imperio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2013, 14h51   #5
cybermichel
Invité de passage
 
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 5
Points : 1
Points : 1
merci mais entre temps j'ai reussi a afficher la valeur et effectivement ce ne sont pas les parenthèses qui font planter mais l'apostrophe.
Je recupere un "?" a la place de l'apostrophe dans le chemin du fichier apres l'avoir passé en wchar_t.
Donc toujours pas résolu.
cybermichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2013, 15h01   #6
imperio
Membre éclairé
 
Avatar de imperio
 
Homme Guillaume Gomez
Étudiant
Inscription : mai 2010
Messages : 161
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Gomez
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2010
Messages : 161
Points : 329
Points : 329
Une fois de plus ça marche pour moi... Comment ça se fait que t'as des double-quotes dans ta chaîne

Edit : désolé j'avais mal lu, mais même avec un apostrophe ça marche. Comme je disais, je pense que le problème vient d'ailleurs.
imperio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2013, 15h25   #7
cybermichel
Invité de passage
 
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 5
Points : 1
Points : 1
Je te remercie de prendre le temps de m'aider.
En fait cette fameuse apostrophe correspond au caractere Unicode /u209 et n'est donc pas celle qu'on tape ddepuis le clavier.
C:\\Windows\\ServiceProfiles\\NetworkService\\AppData\\Local\\Microsoft\\Media Player\\Cache d’images\\LocalMLS\\{9FF89B47-FD86-43D8-8CDF-5355F7D02151}.jpg"
J'ai donc testé en renommant le repertoire et en tapant l'apostrophe au clavier et la comme par miracle tout fonctionne.
Donc c'est cette fameuse apostrophe qui fait planté.
cybermichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2013, 15h28   #8
imperio
Membre éclairé
 
Avatar de imperio
 
Homme Guillaume Gomez
Étudiant
Inscription : mai 2010
Messages : 161
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Gomez
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2010
Messages : 161
Points : 329
Points : 329
Si c'est pas un caractère ascii ça me paraît logique. Du coup ton problème est résolu ?
imperio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2013, 15h57   #9
cybermichel
Invité de passage
 
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 5
Points : 1
Points : 1
Merci encore d'avoir consacré du temps a mon probleme.
Oui le probleme est plus ou moins resolu, je pense que seul Microsoft a des idees aussi ambigues pour nommer un dossier. Ce dossier est en effet un des dossiers de Windows.
cybermichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h15.


 
 
 
 
Partenaires

Hébergement Web