IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

App crash à l'ouverture d'un SaveFileDialog c#


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2016
    Messages : 14
    Par défaut App crash à l'ouverture d'un SaveFileDialog c#
    Bonjour,

    J'ai un logiciel à développer en c# sous Visual Studio.

    Je l'ai donc développé, et il marche parfaitement sur tous les PC sauf sur lequel j'aimerai qu'il marche. Il s’exécute parfaitement jusqu'au moment de l'ouverture d'un SaveFileDialog, où il crash lamentablement, et ne met que l'erreur de base Windows "Le programme a cessé de fonctionner". Il ne lance pas d'exception ni rien.. J'utilise le SaveFileDialog pour enregistrer un document Word que je viens de modifier.

    J'ai donc regardé sur Google, Et plusieurs sites disaient de mettre le SaveFileDialog dans un nouveau Thread, ce que j'ai fait sans conséquences. J'ai essayé de modifier plusieurs paramètres de la fonction SaveFileDialog pour vérifier que ce n'est pas juste un bug bête mais ça n'a rien changé.

    Ce qui est bizarre c'est que à un autre moment j'utilise un OpenFileDialog pour récupérer une image, et ça marche parfaitement!

    La version de .NET est la même que sur mon PC de développement, l'OS est le même aussi, et mon logiciel n'utilise rien de plus (à part une base de donnée en local mais cela m'étonnerais que ça vienne de là). L'ordinateur en question est un vieux notebook, j'ai mis le mode de compatibilité en "Any CPU" mais peut-être est-ce un problème de hardware?

    J'aimerais savoir si vous avez déjà eu ce genre de problème et si oui quelles solutions seraient applicable à mon cas?

    Merci de votre aide,

    Le stagiaire sous-payé

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2012
    Messages : 80
    Par défaut
    Peux tu tester avec autre chose qu'un document Word (un simple fichier texte) et sur plusieurs emplacements de ton choix (pour vérifier les droits). Peux donner le code exécuter. As tu placer des try-catch et des logs ?

    Bon courage

    ps: stagiaire et payé, la chance

  3. #3
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Je serai toi je créerait un nouveau projet (même FrameWork) avec uniquement un SaveFileDialog pour voir si elle seule génère le problème sur ce poste.

    Pour ma part cette fenêtre ne me convenais pas, j'en ai une différent si besoin.

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2016
    Messages : 14
    Par défaut
    Bonjour!

    Alors j'ai fait comme vous avez dit : j'ai créé un petit programme avec deux boutons pour tester le SaveFileDialog sur un document Word et un document Text. J'ai essayé et les deux ont marchés!

    Du coup j'ai fait un système de log à ma façon : pour voir à quelle ligne le crash arrive, j'ai mis des MessageBox quasiment à chaque ligne (oui je m'embête pour rien, c'est ça de pas être doué...) et j'ai repéré la ligne qui posait problème :

    Document.Open(fileName);

    Je l'ai mis dans un nouveau thread, et ça passe, mais après il y a des crashs de partout qui apparaissent complètement aléatoirement, c'est un peu décourageant :/

    Les crashs arrivent sur mes lignes de code de remplacement des balises de mon document Word par les infos rentrés par l'utilisateur :

    FindAndReplace(app, "#Balise#", textBox1.Text.trim());

    Eux aussi marchent parfaitement sur tous les autres ordinateurs. Je pense que c'est juste l'ordinateur qui est moisi, je ne me vois pas mettre chaque ligne du programme dans des threads différents pour éviter les crashs, ce serait un peu ridicule.

    Bref est-ce que quelqu'un a connu quelque chose comme ça? est-ce l'ordinateur ?

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    le coté aleatoire et la présence de plusieurs threads me semblent compatible... en effet, si tu lances des actions en "parallèles", il est possible que l'OS ne les traitent
    pas de la même façon, etc...

    Perso, avant de faire de mettre dans des Threads tes traitements, commencent par tester que celà fonctionne bien sans Thread.

    Si celà se trouve, sur le PC où tu testes, il manque une librairie, ou un composant ou une version différente de word, etc... Bref, faire du séquenciel plutot que
    du Threading me semble une bonne chose au début (surtout si tu n'es pas expérimenté)...

    Après, tu peux aussi mettre un try/ Catch plutôt que des MessageBox pour connaitre la nature du plantage (plutôt que le message laconique de windows disant seulement
    que le programme a juste planté)

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2016
    Messages : 14
    Par défaut
    Merci pour ta réponse!

    "commencent par tester que celà fonctionne bien sans Thread"

    En faite tout fonctionne sur tous les PC, sauf sur l'ordi qui crash tout le temps, c'est ça le plus bizarre.. Oui en effet je galère un peu avec les threads mais j'ai remarqué qu'en en mettant aux endroits qui causent les crashs, ça résout des problèmes!

    "Si celà se trouve, sur le PC où tu testes, il manque une librairie, ou un composant ou une version différente de word"

    Oui, sans doute. Le problème c'est de savoir laquelle.. J'ai regardé la version du framework, de l'OS, et de SQL et ça vient pas de là.

    "try/ Catch plutôt que des MessageBox pour connaitre la nature du plantage"

    C'est ça le plus inquiétant, j'ai la quasi totalité de mon code dans des try/catch :'( c'est en grande partie pour ça que je suis si décontenancé devant ces crashs à répétition..

Discussions similaires

  1. [FB3] Crash lors de l'ouverture de projet
    Par ouaqa dans le forum Flex
    Réponses: 8
    Dernier message: 08/12/2010, 10h42
  2. Réponses: 2
    Dernier message: 23/07/2010, 20h25
  3. ouverture de deux SaveFileDialog
    Par longuard dans le forum Débuter
    Réponses: 4
    Dernier message: 18/12/2009, 09h09
  4. Réponses: 1
    Dernier message: 31/08/2009, 14h54
  5. Crash lors de l'ouverture de mon programme
    Par jimmplan dans le forum MFC
    Réponses: 16
    Dernier message: 16/10/2008, 22h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo