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

MFC Discussion :

Fonction GetLastError()


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre exp�riment�
    Inscrit en
    Mars 2004
    Messages
    425
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 425
    Par d�faut Fonction GetLastError()
    Bonjour � tous.

    J'aimerai comprendre comment elle fonctionne cette fonction.

    En effet je l'utilise afin de m'assurer qu'une seule instance de mon application est en cours en une fois. Mais eulement l'erreur affich�e me fait �tat de l'impossibilit� � lire un emplacement. je veux dire un probl�me de m�moire.

    Est il possible de la personnaliser pour afficher un joli message?

    Merci pour vos contributions.

  2. #2
    R�dacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077

  3. #3
    Membre exp�riment�
    Inscrit en
    Mars 2004
    Messages
    425
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 425
    Par d�faut
    Citation Envoy� par bigboomshakala
    Mon v�ritable probl�me est de personnaliser le message � renvoyer � l'utilisateur.

    J'ai suivi le post de BertrandA via ce post.

    Il marche bien sauf que je veux personnaliser le message.
    http://www.developpez.net/forums/viewtopic.php?t=305175

  4. #4
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    Personnaliser le message ? "Le programme est d�j� en cours d'ex�cution" �a suffit pas comme message :

  5. #5
    Membre exp�riment� Avatar de BertrandA
    Inscrit en
    Ao�t 2003
    Messages
    170
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2003
    Messages : 170
    Par d�faut
    Je ne vois pas trop o� est le probl�me : GetLastError() retourne uniquement un code d'erreur. Tu affiches bien ce que tu veux apr�s :

    J'ai suivi le post de BertrandA via ce post.
    Ca y est, �a va encore �tre de ma faute ...

  6. #6
    Membre exp�riment�
    Inscrit en
    Mars 2004
    Messages
    425
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 425
    Par d�faut
    Citation Envoy� par Aurelien.Regat-Barrel
    Personnaliser le message ? "Le programme est d�j� en cours d'ex�cution" �a suffit pas comme message :
    Il m'affiche pas quelque chose d'aussi joli mais plut�t une fen�tre d'erreur pas tr�s compr�hensible pour un utilisateur profane. Ce message n'est pas du tout convivial. je suppose qu'il est possible de l'embellir.

    Merci

  7. #7
    Membre exp�riment�
    Inscrit en
    Mars 2004
    Messages
    425
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 425
    Par d�faut
    Citation Envoy� par BertrandA
    Je ne vois pas trop o� est le probl�me : GetLastError() retourne uniquement un code d'erreur. Tu affiches bien ce que tu veux apr�s :

    J'ai suivi le post de BertrandA via ce post.
    Ca y est, �a va encore �tre de ma faute ...
    je ne voulais vraiment pas t'incriminer; tu m'en vois d�sol�e.

    Le probl�me est que GetLastError() retourne un DWORD et je n'arrive pas y mettre autre chose.

    STP si tu as un exemple comme ce que je te demande partage le avec moi.

    Merci beaucoup

  8. #8
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    Citation Envoy� par annedjomo
    Il m'affiche pas quelque chose d'aussi joli mais plut�t une fen�tre d'erreur pas tr�s compr�hensible pour un utilisateur profane. Ce message n'est pas du tout convivial. je suppose qu'il est possible de l'embellir.

    Merci
    Ben mieux que �a : il affiche ce que tu lui demande. A toi de changer le message par ce que tu veux

  9. #9
    Membre exp�riment�
    Inscrit en
    Mars 2004
    Messages
    425
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 425
    Par d�faut
    Voici les fonctions en question
    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
    protected:
      DWORD  m_dwLastError;
      HANDLE m_hMutex;
     
    CLimitSingleInstance(TCHAR *strMutexName)
      {
        //Make sure that you use a name that is unique for this application otherwise
        //two apps may think they are the same if they are using same name for
        //3rd parm to CreateMutex
        m_hMutex = CreateMutex(NULL, FALSE, strMutexName); //do early
        m_dwLastError = GetLastError(); //save for use later...
      }
     
    BOOL IsAnotherInstanceRunning()
      {
        return (ERROR_ALREADY_EXISTS == m_dwLastError);
      }
    Je ne sais � quel niveau est ce que je dois changer le message

    Merci

  10. #10
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    Y'a pas de message affich� ici. Tu dois avoir un probl�me dans ton code. Quel est le message affich� ?

  11. #11
    Membre exp�riment�
    Inscrit en
    Mars 2004
    Messages
    425
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 425
    Par d�faut
    L'instruction � "0x004406a9" emploie l'adresse m�moire "0x00000004". La memoire ne peut pas �tre "read".
    Cela survient lorsque je tente de lancer une seconde instance alors qu'une autre est d�j� en cours

    Merci

  12. #12
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    Ben c'est un plantage de ton programme tout simplement. Execute au debugger pour touver l'endroit du plantage.

  13. #13
    Membre exp�riment�
    Inscrit en
    Mars 2004
    Messages
    425
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 425
    Par d�faut
    Citation Envoy� par Aurelien.Regat-Barrel
    Ben c'est un plantage de ton programme tout simplement. Execute au debugger pour touver l'endroit du plantage.
    Il s'arr�te sur la premi�re ligne de cette fonction ci
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    int MonProjetApp::ExitInstance()
    {
    	// TODO : ajoutez ici votre code spécialisé et/ou l'appel de la classe de base
    	if (MaConnexion->IsOpen())
    		MaConnexion->Close();
    	return CWinApp::ExitInstance();
     
    }
    Dans le point h j'ai ceci
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    public:
    	CDatabase* MaConnexion;
    Merci de votre aide.

  14. #14
    Membre exp�riment� Avatar de BertrandA
    Inscrit en
    Ao�t 2003
    Messages
    170
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2003
    Messages : 170
    Par d�faut
    Le pointeur MaConnexion n'est pas initialis�.
    Tu rajoutes simplement une initialisation dans le constructeur :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    MonProjetApp::MonProjetApp() : MaConnexion(NULL)
    et un test dans ExitInstance() :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    // TODO : ajoutez ici votre code spécialisé et/ou l'appel de la classe de base
       if (MaConnexion != NULL) 
          if (MaConnexion->IsOpen()) 
            MaConnexion->Close();

  15. #15
    Membre exp�riment�
    Inscrit en
    Mars 2004
    Messages
    425
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 425
    Par d�faut
    Merci � vous tous.

    J'ai d�plac� l'initialisation de MaConnexion pour la mettre avant le test de
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    if (g_SingleInstanceObj.IsAnotherInstanceRunning())
           return FALSE;
    Et le probl�me est r�solu.

    Merci beaucoup.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Fonction API
    Par margilb dans le forum C++Builder
    R�ponses: 2
    Dernier message: 08/07/2002, 11h11
  3. Impl�mentation des fonctions math�matiques
    Par mat.M dans le forum Math�matiques
    R�ponses: 9
    Dernier message: 17/06/2002, 16h19
  4. fonction printf
    Par ydeleage dans le forum C
    R�ponses: 7
    Dernier message: 30/05/2002, 11h24
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    R�ponses: 4
    Dernier message: 15/05/2002, 20h07

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