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 :

Configuration d'une ressource de communication


Sujet :

C++

  1. #1
    Membre habitué
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2017
    Messages : 9
    Par défaut Configuration d'une ressource de communication
    Bonjour, en cherchant à configurer mon modem 56k interne sur le Com3, j'ai trouver un code sur MSDN .
    Novice je teste Visual Studio Code.
    Après un Copier/Coller, je me retrouve avec l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    > Executing task: g++ -g ouvreCOM3.cpp <
     
    In file included from ouvreCOM3.cpp:2:0:
    ouvreCOM3.cpp: In function 'int main(int, TCHAR**)':
    ouvreCOM3.cpp:20:30: warning: ISO C++ forbids converting a string constant to 'TCHAR* {aka char*}' [-Wwrite-strings]
         TCHAR *pcCommPort = TEXT("COM1"); //  Most systems have a COM1 port
                                  ^
    ouvreCOM3.cpp:39:39: error: 'SecureZeroMemory' was not declared in this scope
         SecureZeroMemory(&dcb, sizeof(DCB));
                                           ^
    Le processus du terminal s'est achevé avec le code de sortie 1
    Il y a un problème de pointeur.
    Ce qui me dérange le plus, c'est la fiabilité de la source. A croire que le compilateur n'est pas adéquat.

    La discussion première est Ici.

    Merci d’avance de votre aide.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par fallentree Voir le message
    Il y a un problème de pointeur.
    Non il y a un problème de ouvreCOM3.cpp:20:30: warning: ISO C++ forbids converting a string constant to 'TCHAR* {aka char*}' [-Wwrite-strings] qui indique texto que ta fonction retourne un const char* que tu espères enregistrer dans un char*.
    Citation Envoyé par fallentree Voir le message
    Ce qui me dérange le plus, c'est la fiabilité de la source. A croire que le compilateur n'est pas adéquat.
    Fiabilité ? D'un code C qui date de qui sait combien d'années ? Certainement que le compilateur n'est pas adéquat, ne serait-ce que parce que tu compiles du code C avec un compilateur C++, et ça a beau marcher dans de nombreux cas, les règles ne sont pas les mêmes dans les deux langages.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre habitué
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2017
    Messages : 9
    Par défaut Merci pour ta réponse.
    Ok, C pour C++.
    As tu suivi le lien vers MSDN?
    Tout y indique du C++ pourtant.

    Bref...

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 524
    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 524
    Par défaut
    Ici, il s'agit d'un code illustrant l'usage d'une API Win32 qui est une API C, pas C++.
    Avec un peu de connaissance, on peut faire fonctionner ce code C++ dans un compilateur C++ moderne.
    Mais les compilateurs C++ modernes font largement plus de vérification que les vieux clous des années 1980.
    Il s'agit d'un warning, pas d'une erreur.
    Si vous faite du C, en utilisant un compilateur C, vous n'aurez pas cette vérification.
    Si vous voulez utiliser une compilateur C++ moderne, il faudrait adapter ce code, qui n'est qu'un simple code d'illustration, pas un code de "production".

  5. #5
    Membre habitué
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2017
    Messages : 9
    Par défaut
    toutefois y a bien une erreur ...
    ouvreCOM3.cpp:39:39: error: 'SecureZeroMemory' was not declared in this scope
    SecureZeroMemory(&dcb, sizeof(DCB));
    Je cherche , je cherche ...
    Compilateur C de MinGW ???

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 524
    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 524
    Par défaut
    https://msdn.microsoft.com/fr-fr/lib...or=-2147217396
    Vérifiez la spécification de la plateforme cible.
    Si c'est inférieur à WinXP, c'est ne n'est pas une API disponible.

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par défaut
    http://lmgtfy.com/?q=SecureZeroMemory
    Tu prends un code sur la MSDN, faut au moins le prendre en entier et inclure les headers de Windows comme ils le font.
    Puis rien qu'au nom c'est juste une façon sexy d'appeler un memset à 0.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 524
    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 524
    Par défaut
    Puis rien qu'au nom c'est juste une façon sexy d'appeler un memset à 0.
    Plus safe aussi car c'est le Kernel qui fournit le code donc pas d'optimisation intempestive.
    Mais ici, c'est assez gadget.

  9. #9
    Membre habitué
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2017
    Messages : 9
    Par défaut
    Citation Envoyé par bacelar Voir le message
    https://msdn.microsoft.com/fr-fr/lib...or=-2147217396
    Vérifiez la spécification de la plateforme cible.
    Si c'est inférieur à WinXP, c'est ne n'est pas une API disponible.
    Plateforme: Windows10
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #include <windows.h>
    #include <tchar.h>
    #include <stdio.h>
    #include <WinBase.h>
    Ajout WinBase.h rien n'y fait.

    mais avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     memset(&dcb, 0, sizeof(DCB));
    Un exe est généré. Bref...

  10. #10
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 524
    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 524
    Par défaut
    Plateforme: Windows10
    Je parle de la plateforme cible, pas de la plateforme de build.
    Vérifiez les constantes de compilations qui pilotent la définition de la plateforme cible du programme.

    Ajout WinBase.h rien n'y fait.
    Comme indiqué dans la documentation, c'est windows.h qu'il faut ajouter ET CONFIGURER LES CONSTANTES DE COMPILATION qui pilotent la définition de la plateforme cible du programme.


    Un exe est généré. Bref...
    Et vous ne savez toujours pas sur quel version de l'OS il fonctionnera, vous cherchez les ennuis.

  11. #11
    Membre habitué
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2017
    Messages : 9
    Par défaut CMD et POWERSHELL
    Et vous ne savez toujours pas sur quel version de l'OS il fonctionnera, vous cherchez les ennuis.
    Je suis perdu !!!
    je teste VISUAL STUDIO CODE

  12. #12
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 524
    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 524
    Par défaut
    je teste VISUAL STUDIO CODE
    "VISUAL STUDIO CODE" n'est qu'un IDE.
    Si vous le configurez pour compiler du Klingon pour générer un exécutable pour les vaisseaux mères d'Independance Day, il le fera.
    Faut juste chopper la chaine de compilation qui va bien.

    Par défaut, il doit être vraisemblablement configuré pour générer des exécutables compatible Win95 (Win32 de base) à partir de code C++, mais ça doit être fonction du type de projet créé.

    Si c'est le cas, vous devez changer les paramètres du projet, via les "CONSTANTES DE COMPILATION" qui vont bien pour qu'elles correspondent VOTRE cible de compilation.
    https://msdn.microsoft.com/fr-fr/lib...or=-2147217396

    "SecureZeroMemory" n'est disponible que depuis WinXP. Cela pourrait donc expliquer vos erreurs de compilations initiales.

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

Discussions similaires

  1. Manipulation d'une ressource commune par plusieurs agents sur JADE
    Par snaki99 dans le forum Persistance des données
    Réponses: 0
    Dernier message: 21/04/2013, 02h27
  2. [Tomcat] configuration d'une page d'erreur dans web.xml
    Par Super Castor dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 08/04/2009, 15h58
  3. Accès à une ressource ?
    Par Neilos dans le forum C++Builder
    Réponses: 2
    Dernier message: 20/03/2004, 16h29
  4. Inclure une dll dans une ressource
    Par bgcode dans le forum C++Builder
    Réponses: 4
    Dernier message: 21/08/2003, 11h12

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