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

Visual C++ Discussion :

soucis avec un executable


Sujet :

Visual C++

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par d�faut soucis avec un executable
    coucou � tous

    Comme le dit l'intitul�, j�ai un souci avec un ex�cutable.
    J�ai commenc� � d�velopper une application sur Visual C++ 6 qui communique avec un port s�rie.
    Pour v�rifier que m'on appli tourne correctement, j'ai utilis� la fonction "TRACE", puis j'ai lanc� le mode d�bug(F5)(sans point d'arr�t);
    Tout s'est tr�s bien d�roul�.
    Cependant lorsque j'ai voulu utiliser directement l'ex�cutable, la communication avec le port s�rie ce fait partiellement(ctrl+F5).

    Quelqu�un conna�t-il les raisons de mon probl�me ou peut m��clairer ?
    SVP

  2. #2
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par d�faut
    du nouveau

    afin de savoir ce qui ne va pas, j'ai cr�e un fichier "erreur.txt". Si une erreur ce produit, elle est sauvegarder dans ce fichier.

    Grace � la methode "GetLastError()" , j'ai put remarqu� que l'appli perdait la comunication avec le port s�rie
    System Errors - Numerical Order

    2 The system cannot find the file specified. ERROR_FILE_NOT_FOUND

  3. #3
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Ce ne serait pas plut�t ERROR_INVALID_HANDLE, qui indiquerait une perte de connexion ?

    � moins que tu ne gardes pas le port s�rie ouvert en permanence?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre Expert
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Par d�faut
    question � 2 balles : est ce que le fichier existe ? si oui, comment tu fais passer le chemin du fichier ?

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par d�faut
    Pour r�pondre � M�dinoc :
    Quand je traduis b�tement pour moi c�est � le system n�a pas trouv� le fichier sp�cifier � donc j�en ai conclu, qu�il a perdu la com.
    (je reconnais que j�ai des lacunes en anglais mais la je suis sur)
    Je laisse en permanence le port ouvert et le ferme � la fin du test � effectuer.

    Pour r�pondre � A la drogue c�est mal :
    Le fichier en question est un port s�rie.

    Je tiens rappeler que la communication s�effectue correctement en mode � debug �, mais pas en ex�cutant normalement l�application.


    C�est pourquoi je ne comprend pas l�erreur qui c�est inscrit dans le fichier texte ;

  6. #6
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Quand je traduis b�tement pour moi c�est � le system n�a pas trouv� le fichier sp�cifier � donc j�en ai conclu, qu�il a perdu la com.

    Donc, il ne trouve pas un fichier, ce qui est une erreur � l'ouverture, et toi, tu en conclus qu'il perd la com (ce qui signifie que la com est d�j� ouverte)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par d�faut
    Oui je consid�re qu'il est ouvert.

    Je ne l'ai pas pr�cis� mais, quel que soit le nombre de trame que j'envoi... la premi�re est bien envoy�e( cette trame allume un voyant sur ma carte).
    mais les suivantes non...

    Comme j'envois les commandes les une apr�s les autres sans fermer la communication avec le port, j'ai consid�r� l'erreur qui m'a �t� signal� comme une perte de connexion.

  8. #8
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Ben, comme c'est une erreur � l'ouverture, c'est impossible.

    PS: Tu ouvres le port avec quelles fonctions ? (FILE *, fd, Win32Api...)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par d�faut
    j'ouvre mon port avec "CreateFile"
    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
    29
     
    bool CCom::PortOpen(int portnumber, long baudrate,char parity,int wordlength,int stopbits)
    {
     
        char sz[20];
        m_nInputBufferSize=1050;
        m_nOutputBufferSize=1050;
     
        memset(&m_ovWrite,0,sizeof(m_ovWrite));
    	memset(&m_ovRead,0,sizeof(m_ovRead));
     
    	wsprintf( sz, "\\\\.\\COM%d", portnumber);   
        m_hCom = CreateFile( sz,
            GENERIC_READ | GENERIC_WRITE,
            0,
            NULL,
            OPEN_EXISTING,
            FILE_FLAG_OVERLAPPED,
            NULL );
     
        if ( m_hCom == INVALID_HANDLE_VALUE )
        {
            return false;
        }   
     
    	... initialisation de la structure DCB
     
        return true;
    }

  10. #10
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Eh bien normalement, l'erreur ERROR_FILE_NOT_FOUND ne peut avoir lieu qu'ici (� moins que tu n'ouvres des fichiers en plus).

    Si tu �cris dans le port COM avec WriteFile(), l'erreur doit �tre autre.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #11
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par d�faut
    en fait c'est quand je fait une attente d'�v�nement pour la reception d'une trame que se produit l'�rreur

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if(!WaitCommEvent( *INFO->m_hCom, &dwEvtMask, NULL ))
    {
    ...
    //écriture dans un fichier txt "GetLastError()"
    ...
    }
    else
    {
    //écriture dans ficher txt que l'attente c'est bien passé
    }
    j'ai fait plusieur fichier text pour v�rifier que toutes les �tapes de la communication �tait bien respecter. (et j'ai bien v�rifier que je les ferm�s)

    bizarment, il semblerait que toute les trames ont �t� envoy�. Mais seul la premi�re � eu un �ffet sur la carte.
    une seul trame a �t� re�u.
    De plus pour l'attente d'�v�nement plusieur ce passe correctement et puis sens raison apparente, j'ai le probl�me qui apparait.


    j'ai v�rifier si �a venait pas de mon "TimeOut". Mais non , il semble dans les normes.

  12. #12
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Alors, premi�rement, que signifie *INFO->m_hCom pr�cis�ment : Je ne suis pas dou� pour les priorit�s, c'est pour �a que je mets toujours des parenth�ses.

    Ensuite, essaie de coupler un FormatMessage() avec ton GetLastError(). Et surtout, fait le GetLastError() imm�diatement et m�morise sa valeur : s'il y a un appel de fonction entre le WaitCommEvent() et le GetLastError(), la valeur retourn�e sera affect�e.

    Et l�, on verra bien si c'est toujours ERROR_FILE_NOT_FOUND. Si c'est toujours le cas, je ne sais pas comment t'aider.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #13
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par d�faut
    Pour r�pondre � ta question :
    L�attente d��v�nement s�effectue dans un thread.
    INFO est une structure qui est mis en param�tre lors de � CreateThread �
    Cette structure contient tous les attributs que je vais avoir besoin dans mon trhread.
    L�un d�eux � m_hCom � est le � HANDL E � retourn� par � CreateFile � .

    Or mis une fonction � memset(�) � et � sprintf(�) �, je m�morise aussit�t la valeur de � GetLastError() � dans une variable.

    Je vais essayer FORMAT MESSAGE

  14. #14
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par d�faut
    OK
    j'ai fait FormatMessage()
    la r�ponce est fichier sp�cifier introuvable

  15. #15
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Je pense qu'il y a une �toile de trop dans le premier param�tre de WaitCommEvent().

    Et pour �tre s�r, tu devrais absolument faire le GetLastError() imm�diatement apr�s le WaitCommEvent().
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  16. #16
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par d�faut
    non, �a ne va pas non plus, il me dit maintenant que le descripteur(HANDLE) n'est pas valide.
    De plus, m�me en mode debug �a ne fonctione plus.

  17. #17
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Peux-tu poster un fragment de code minimal et compilable qui fait de l'envoi (pas de r�ception) et montre le probl�me ?

    PS: c'est suppos� marcher sous XP, au moins ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  18. #18
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par d�faut
    Peux-tu poster un fragment de code minimal et compilable qui fait de l'envoi (pas de r�ception) et montre le probl�me ?

    PS: c'est suppos� marcher sous XP, au moins ?
    d�sol�, je ne vois pas ce que tu demande?

  19. #19
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par d�faut
    voici ma fonction qui me permet d'envoyer une trame:

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    bool CCom::WriteComm(unsigned char *lpByte , DWORD dwBytesToWrite)
    {
       BOOL		fWriteStat;
       DWORD	dwBytesWritten ;
       DWORD	dwErrorFlags;
       DWORD	dwError;
       DWORD	dwBytesSent=0;
       COMSTAT	ComStat;
       char     szError[ 128 ];
     
     
       if(NULL == m_hCom)
          return false;
     
       fWriteStat = WriteFile( m_hCom, lpByte, dwBytesToWrite, &dwBytesWritten, &m_ovWrite);
     
       if (!fWriteStat)
       {
          if(GetLastError() == ERROR_IO_PENDING)
          {
     
             while(!GetOverlappedResult(m_hCom, &m_ovWrite, &dwBytesWritten, TRUE ))
             {
                dwError = GetLastError();
                if(dwError == ERROR_IO_INCOMPLETE)
                {
                   dwBytesSent += dwBytesWritten;
                   continue;
                }
                else
                {
    				break;
                }
     
             }
     
             dwBytesSent += dwBytesWritten;
     
             if( dwBytesSent != dwBytesToWrite )
    			wsprintf(szError,"\nProbable Write Timeout: Total of %ld bytes sent", dwBytesSent);
             else
    		 {
                wsprintf(szError,"\n%ld bytes write\n", dwBytesSent);
     
    		 }
     
             OutputDebugString(szError);
     
          }
          else
          {
             ClearCommError( m_hCom, &dwErrorFlags, &ComStat );
     
             return false;
          }
       }
       return true;
     
    }

  20. #20
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Euh... Je ne vois pas o� tu loggues l'erreur n�2, ici...

    Et je ne suis pas s�r de pouvoir vraiment t'aider pour ce qui est des structures OVERLAPPED, mais bon:
    Code C++ non-test� : 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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    bool CCom::WriteComm(unsigned char *lpByte , DWORD dwBytesToWrite)
    {
    	BOOL    fWriteStat = FALSE;
    	DWORD	dwBytesWritten = 0;
    	DWORD	dwErrorFlags = 0;
    	DWORD   dwWriteError = 0;
    	DWORD	dwBytesSent=0;
    	COMSTAT	ComStat;
    	TCHAR   szError[ 128 ];
     
     
    	if(NULL == m_hCom)
    		return false;
     
    	fWriteStat = WriteFile( m_hCom, lpByte, dwBytesToWrite, &dwBytesWritten, &m_ovWrite);
    	dwWriteError = GetLastError();
    	if (!fWriteStat)
    	{
    		if(dwWriteError == ERROR_IO_PENDING)
    		{
    			while(!GetOverlappedResult(m_hCom, &m_ovWrite, &dwBytesWritten, TRUE ))
    			{
    				DWORD const dwError = GetLastError();
    				if(dwError == ERROR_IO_INCOMPLETE)
    				{
    					dwBytesSent += dwBytesWritten;
    					continue;
    				}
    				else
    				{
    					break;
    				}
    			}//while
     
    			dwBytesSent += dwBytesWritten;
     
    			if( dwBytesSent != dwBytesToWrite )
    				wsprintf(szError, TEXT("\nProbable Write Timeout: Total of %ld bytes sent"), dwBytesSent);
    			else
    			{
    				wsprintf(szError,TEXT("\n%ld bytes write\n"), dwBytesSent);
    			}
     
    			OutputDebugString(szError);
    		}
    		else
    		{
    			//Afficher l'erreur dans le debug
    			int nPrinted = wsprintf(szError, TEXT("\nError %lu : "), dwWriteError);
    			FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, dwWriteError, 0, szError, 128-nPrinted, NULL);
    			OutputDebugString(szError);
    			ClearCommError( m_hCom, &dwErrorFlags, &ComStat );
    			return false;
    		}
    	}//if
    	return true;
    }
    Ce n'est pas test�, mais �a compile.
    Et tu devrais v�rifier de m�me (GetLastError() imm�diat) pour toutes tes autres fonctions qui acc�dent au port COM.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. quelques soucis avec word 2000
    Par ramchou dans le forum Word
    R�ponses: 3
    Dernier message: 06/09/2004, 18h13
  2. SOucis avec une reequete imbriquee
    Par Ni4k dans le forum Langage SQL
    R�ponses: 6
    Dernier message: 30/03/2004, 08h56
  3. souci avec un algorithme
    Par slider16 dans le forum Algorithmes et structures de donn�es
    R�ponses: 4
    Dernier message: 22/03/2004, 17h17
  4. [DEBUTANT] petits soucis avec un prgm de chat
    Par LechucK dans le forum MFC
    R�ponses: 8
    Dernier message: 19/01/2004, 16h52
  5. R�ponses: 4
    Dernier message: 16/02/2003, 12h16

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