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 :

Programme a cessé de fonctionner


Sujet :

C#

  1. #1
    Membre très actif
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Par défaut Programme a cessé de fonctionner
    Bonjour,

    j'ai développer un petit programme qui doit se connecter a une tablette. Sur mon pc de developpement aucun problème, je fais une release!

    je met la release sur le serveur RDP, je me connecte sur le RDP avec un client leger qui a la tablette connectée en usb.

    la tablette apparait bien dans le gestionnaire de périphérique.

    donc je lance mon exe et la programme a cessé de fonctionner.

    je vais dans les détails de l'erreur et je vois "signature du problème 09 : System.NullReferenceException

    je sais ce que ça veut dire mais j'aimerais pouvoir savoir qu'elle variable est null !

    je me doute un peu de se que c'est mais je voudrais une confirmation plutot que de changer quelque chose des dizaines de fois alors que ce n'est pas le bon !

    est-ce que c'est possible de savoir quelle variable est null ?

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2016
    Messages : 5
    Par défaut
    Bonjour Math71,

    Avez-vous essayé depuis Visual Studio de changer "debug" en "release" et lancé l'application (F5) ? (Désolé, je trouve pas les mots avant le café )

    Il est possible que vous puissiez trouver la source de l'erreur à partir de là. Sinon, il est possible qu'il manque une référence lors du déploiement. Avez-vous essayé via "click once" ?

    Bien à vous

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Par défaut
    Au final j'ai trouve !
    C'est la tablette qui n'apparaissais plus dans le gestionnaire! Un petit bug a la con!

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    Éternel changement de comportement entre Debug et Release

    Je te conseille aussi de rajouter un try / catch directement dans le main de ta classe programme pour gérer ce genre de gags "imprévus". Ca permet de sortir un peu plus propre et et donne également des indications sur ce qui ne va pas..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    System.Windows.Forms.Application.EnableVisualStyles();
    			System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false);
                try
                {
                    Application.Run(new MainForm());
                }
                catch (Exception ex)
                {
                    MessageBox.Show(string.Format("Erreur irrécupérable, l'application va se fermer :\nMessage : {0}\nStack : {1}", ex.Message, ex.StackTrace));
                }

  5. #5
    Membre très actif
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Par défaut
    C'est prevu!

    Juste que pour le moment je suis presse pour faire une presentation donc pas trop le temps de m'arreter sur chaque petit "gags" qu'il peut y avoir!

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    Ça ne coûte rien de s'imposer ces quelques supplémentaires sur chaque projet et ça permet de trouver de suite le type et l'emplacement de l'erreur en cas de bug.
    Libre à toi ^^

  7. #7
    Membre très actif
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Par défaut
    Au final je l'avais deja mis....

    Du coup je sais pas ou bug....
    Le try c'est au niveau du connect!
    Fin bref!

  8. #8
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    Citation Envoyé par Math71 Voir le message
    Du coup je sais pas ou bug....
    !
    La propriété StackTrace de l'exception te donne la ligne exacte où l'exception a été générée.

  9. #9
    Membre très actif
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Par défaut
    Le probleme c'est que c'est "installer" sur un RDP donc sans IDE

    Mais quand le RDP detecte la tablette ca ne bug plus! Jy comprends plus rien!

  10. #10
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    Par IDE tu entends quoi ? Pas Visual Studio ? cela n'empêche pas d'afficher un MessageBox avec les détails de l'exception si ?

    Au lieu de faire un MessageBox tu peux aussi faire un fichier de logs dans lequel tu écris lorsqu'une exception se produit (erreur ou un événement notable : connexion de la tablette ok ! yeah !)

  11. #11
    Membre très actif
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Par défaut
    le messagebox marche très bien ! car j'ai un fichier de config s'il le trouve pas le messagebox apparait !

    le problème c'est quand ca bug, il n'entre pas dans le try !
    donc c'est que ca bug avant ! mais vu que le seul truc qu'il ne peut pas trouvé c'est le tablette !

    a moins que vu que c'est un RDP en virtualbox j'avais peut ètre oublié une option que j'ai remise après !

    en tout maintenant ca marche et c'est le principal !

  12. #12
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    S'il n'entre pas dans le catch c'est que l'erreur n'est pas dans le try. Certainement plus haut. Tu dois faire d'autre chose avant le Application.Run dans le main.
    Si ça fonctionne alors.

  13. #13
    Membre très actif
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Par défaut
    oui le seul truc que je fais c'est de rechercher la config et la ça marche car quand je la met pas il me le dit !

    et je recherche s'il y a un pdf dans le dossier spécifié dans la config ! et ca marche aussi car il lance le form !

    et le premier truc que je fais dans le form c'est ce connecter a la tablette !

    a moins que ce soit la recherche du périphérique qui merde s'il en trouve aucun ! meme si c'est un tableau....

  14. #14
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    Poste ton code si tu veux qu'on regarde. Il faudrait quand même trouver la ligne qui foire...

    Essaye de mettre le try / catch pour englober toute ta fonction main. Si ça crash encore c'est que tu as une variable statique dans la classe Program qui crashe lors de l'initialisation. Je vois pas d'autre explication.

  15. #15
    Membre très actif
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Par défaut
    Je postera ca la prochaine fois!
    La j'espere que corrige le probleme entre le client leger et le rds donc pas d'internet sur le pc^^

    Je vous tiendrais informe quand je pourrais

  16. #16
    Membre très actif
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Par défaut
    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
    if (usbDevices.Count != 0) // usbDevices.Count est égal a 0 !
                {
                    try
                    {
                        wgssSTU.IErrorCode ec = m_tablet.usbConnect(usbDevice, true);
                        if (ec.value == 0)
                        {
                            m_capability = m_tablet.getCapability();
                            m_information = m_tablet.getInformation();
                        }
                        else
                        {
                            throw new Exception(ec.message);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                        this.Close();
                    }
     
                }
                else
                    this.Close();
     
                Size clientSize = new Size((int)(m_capability.tabletMaxX / 2540F * 96F), (int)(m_capability.tabletMaxY / 2540F * 96F)); //ici m_capability est null si aucune tablette est connectée !
                this.ClientSize = clientSize;
                this.ResumeLayout();
    voila mon code et l'endroit ou ça bug !

    et pourtant j'ai bien un test pour savoir si une tablette est connecté !

    si elle ne l'est pas le programme doit se fermer! mais malheureusement il continue....

    j'ai vérifié il va bien dans le else, mais il continue a suivre le code comme si de rien n'était !

  17. #17
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    Il est exécuté où ce bout de code ? Dans le constructeur ?

  18. #18
    Membre très actif
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Par défaut
    oui dans le constructeur et c'est surement pour ca !

    j'ai résolu le problème en mettant tout le code dans le "if" mais le problème c'est le showdialog qui bug!

Discussions similaires

  1. SDL programme a cessé de fonctionner
    Par czar1983 dans le forum SDL
    Réponses: 12
    Dernier message: 20/07/2013, 16h52
  2. Programme a cessé de fonctionner
    Par Divelopiz dans le forum VB.NET
    Réponses: 3
    Dernier message: 29/07/2012, 12h05
  3. Le programme a cessé de fonctionner
    Par kryptong dans le forum Débuter
    Réponses: 13
    Dernier message: 31/03/2012, 14h45
  4. le programme a cessé de fonctionner
    Par ghost_23 dans le forum Windows Vista
    Réponses: 1
    Dernier message: 13/10/2009, 22h40
  5. Pb deploiement : "Le programme a cessé de fonctionner"
    Par vikz dans le forum Général Dotnet
    Réponses: 13
    Dernier message: 12/03/2008, 15h39

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