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 :

problème de connexion


Sujet :

C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut problème de connexion
    bonjour. J'utilise une conection bluetooth et je n'arrive a me connecter que sur les 9 premier ports alors que je voudrai pouvoir en utiliser une 50aine. Je pense avoir trouver le souci mais je ne sais pas comment le résoudre.

    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
    bool Port::Ouvrir(int m_nId)
    {
    	char *buf = NULL;
     
    	switch (m_nId)
    	{
    	case 1:
    	buf= "COM1" ;
    	break;
    	case 2:
    	buf= "COM2" ;
           ......
            case 50:
    	buf= "COM50" ;
    	break;
     
    m_hCom = CreateFileA(buf, GENERIC_READ|GENERIC_WRITE, 0, NULL,
    OPEN_EXISTING, 0, NULL);
    if(m_hCom == INVALID_HANDLE_VALUE)
    {
    cout<<"Erreur lors de l'ouverture du port com:"<<m_hCom<<endl;
    return FALSE;
    }
    Si quelqu'un a une idée, je suis preneur

  2. #2
    Membre confirmé Avatar de stephdim
    Profil pro
    Inscrit en
    Août 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 462
    Points : 521
    Points
    521
    Par défaut
    salut,

    utilises ceci comme chemin d'accès:

    c'est un probleme connu sur Windows

    penser à doubler les backslash dans la chaine de caractères "C"

    @+

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Si j'ai bien compris, ca donnerai:

    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
    char *buf = NULL;
    	switch (m_nId)
    	{
    	case 1:
    	buf= "COM1" ;
    	break;
    	case 2:
    	buf= "COM2" ;
    	break;
    	...
    	case 9:
    	buf= "COM9" ;
    	break;
    	case 10:
    	buf= "\\.\COM10" ;
    	break;
    	case 11:
    	buf= "\\.\COM11" ;
            .... jusqu'a 50.
    ben ca ne marche tjs pas,ca ne doit pas venir de la. mais merci quand meme.

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par stephdim Voir le message
    penser à doubler les backslash dans la chaine de caractères "C"
    Citation Envoyé par memodia Voir le message
    ben ca ne marche tjs pas,ca ne doit pas venir de la. mais merci quand meme.
    Ce serait plutôt :
    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
    char *buf = NULL;
    	switch (m_nId)
    	{
    	case 1:
    	buf= "COM1" ;
    	break;
    	case 2:
    	buf= "COM2" ;
    	break;
    	...
    	case 9:
    	buf= "COM9" ;
    	break;
    	case 10:
    	buf= "\\\\.\\COM10" ;
    	break;

  5. #5
    Membre confirmé Avatar de stephdim
    Profil pro
    Inscrit en
    Août 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 462
    Points : 521
    Points
    521
    Par défaut
    heureusement que j'avais préciser de doubler les backslashs ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    buf="\\\\.\\COM10";
    tu peux utiliser ce format meme pour COM1, COM2 ... c'est un format passe-partout

    @+

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Je faire vraiment le lourd, mais ca ne marche toujours pas meme avec

  7. #7
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // #include <string>
    // #include <sstream>
       std::string port;
       std::stringstream strstr;
       strstr<<"\\\\.\\COM"<<m_nId;
       port = strstr.str();
     
       HANDLE m_hCom = CreateFileA(port.c_str(), GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
    ...
    Du coup, est-ce que COM10, COM11.. existent sur ta machine ?

  8. #8
    Membre confirmé Avatar de stephdim
    Profil pro
    Inscrit en
    Août 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 462
    Points : 521
    Points
    521
    Par défaut
    fais un appel à GetLastError() , juste après le CreateFile, et donne nous la valeur retournée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DWORD error=GetLastError();
    cout << "erreur:" << error;
    @+

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Question un peu bête, comment voir la valeur retourné? car je fais mon prog sous note pad++ et après je vois si ca marche sur QT

  10. #10
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       std::string erreur;
       std::stringstream strstr;
       strstr<<"Erreur : "<<GetLastError();
       erreur = strstr.str();
       MessageBoxA(NULL,erreur.c_str(),"Erreur",MB_OK);
    ?

    [EDIT] : tu peux aussi utiliser FormatMessage

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    j'ai bo essayer, jsuis désolé j'arrive pas a faire marcher. meme après installation de silverlight avec format message.
    Si vous avez une autre idée, que je puisse tester....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Première installation] Problème de connexion
    Par sekiryou dans le forum Installation
    Réponses: 2
    Dernier message: 02/03/2004, 19h18
  2. [ Oracle 9ias / 10g] problème de connexion
    Par Boosters dans le forum JDeveloper
    Réponses: 2
    Dernier message: 20/01/2004, 17h23
  3. Problème de connexion au serveur MYSQL
    Par ETOKA dans le forum Outils
    Réponses: 2
    Dernier message: 27/11/2003, 09h28
  4. Réponses: 11
    Dernier message: 13/10/2003, 14h48
  5. problème de connexion 2 PC
    Par guitalca dans le forum Développement
    Réponses: 3
    Dernier message: 22/09/2003, 14h04

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