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++/CLI Discussion :

Ouvrir le port COM sur Windows CE


Sujet :

C++/CLI

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut Ouvrir le port COM sur Windows CE
    Bonjour j'essaye d'ouvrir le port COM5 en C++ sur mon Device Windows CE

    Je suis certain qu'il existe et est opérationnel parce que en cSharp cela fonctionne

    Le code ci apres me rends toujours une erreur 2
    Est ce que je fais une erreur ?

    Merci de votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    hComm = CreateFile( TEXT("COM5"),  
    		GENERIC_READ | GENERIC_WRITE, 
    		0, 
    		0, 
    		OPEN_EXISTING,
    		NULL,
    		NULL);
    	if (hComm == INVALID_HANDLE_VALUE)
    	{
        dw=GetLastError();
        int uu=5;
    	}

  2. #2
    Membre chevronné
    Inscrit en
    Décembre 2010
    Messages
    290
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 290
    Par défaut
    J'ai trouvé ça ici :
    http://msdn.microsoft.com/en-us/library/aa517318.aspx

    "When lpFileName points to a COM port to open, you must include a colon after the name. For example, specify COM1: to open that port."

    Ce qu'on pourrait traduire par : "Lorsque lpFileName pointe sur un port COM à ouvrir, vous devez inclure les deux points après le nom. Par exemple, specifiez COM1: pour ouvrir ce port.

  3. #3
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci pour ton aide

    Mais ca n'aide helas pas

    J'ai déja essayé plein de truc mais sans succes
    Le premier problème a contourner est que la fonction CreateFile demande un LPCWSTR
    Et comme ca fais lontemps que je n'ai plus fais de C en Windows il a fallu trouver comment déclarer ca

    Voici donc ma tentative
    Mais ca me rends une erreur 2

    NB : j'ai aussi essayé sans succes les assignations suivantes


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     wchar_t tt[]=L"COM5";
    wchar_t tt[]=L"COM5\0";
    wchar_t tt[]=L"COM5:";
    wchar_t tt[]=L"COM5:\0";}
    Mais toutes produisent l'erreur 2
    Or je peux ouvrir ce COM5 sur le meme terminal avec cSharp

    Je ne peux pas croire que ce ne soit pas possible en C++
    Merci de ton aide




    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
     wchar_t tt[]=L"COM5";
      int len=0;
      int result=0;
      char *buffer;
      DWORD dw;
     
      hComm = CreateFile( tt,  
    		GENERIC_READ | GENERIC_WRITE, 
    		0, 
    		0, 
    		OPEN_EXISTING,
    		NULL,
    		NULL);
    	if (hComm == INVALID_HANDLE_VALUE)
    	{
                      dw=GetLastError();
                       int uu=5;
    	}

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 476
    Par défaut
    La Macro W2CT
    http://msdn.microsoft.com/fr-fr/library/87zae4a3.aspx

    C'est juste un const_cast avec quelque bricoles, donc facilement récupérable dans le .h même si c'est pas sous WinCE.

  5. #5
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci

    J'ai fini par trouver : c'est un LPCTSTR

    Et il FAUT les deux points

    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
      LPCTSTR portname = L"COM5:";
     
      int len=0;
      int result=0;
      char *buffer;
      DWORD dw;
     
      hComm = CreateFile( portname,  
    		GENERIC_READ | GENERIC_WRITE, 
    		0, 
    		NULL, 
    		OPEN_EXISTING,
    		NULL,
    		NULL);
    	if (hComm == INVALID_HANDLE_VALUE)
    	{
        dw=GetLastError();
     }

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    Si tu utilises des TCHAR, utilise-les jusqu'au bout: remplace LPCTSTR portname = L"COM5:"; par LPCTSTR portname = TEXT("COM5:");
    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. Réponses: 1
    Dernier message: 12/04/2010, 16h59
  2. ouvrir le port com ?
    Par Sayler dans le forum Débuter
    Réponses: 4
    Dernier message: 18/03/2010, 10h11
  3. Port COM sur poste client
    Par crazyday dans le forum Débuter
    Réponses: 1
    Dernier message: 20/04/2009, 16h55
  4. [TSE] Ouvrir le port LPT1 sur un Wyse
    Par Luffy Duck dans le forum Windows
    Réponses: 7
    Dernier message: 20/10/2005, 09h55
  5. ouvrir un port COM > à 9
    Par lamalice dans le forum Windows
    Réponses: 2
    Dernier message: 04/01/2005, 16h10

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