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 :

Lire/Ecrire sur un périphérique HID


Sujet :

Visual C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 25
    Par défaut Lire/Ecrire sur un périphérique HID
    Bonjour,
    Mon projet consiste à adresser une carte d'E/S vue comme un périphérique HID. Les sujets sur le HID ne manquent pas sur ce forum, mais moi j'ai un problème de base qui m'empêche de démarrer: je n'arrive pas à mettre sur pied ma plateforme de développement... J'ai des exemples de code source et je n'arrive même pas à les compiler.

    J'ai 2 environnements différents: Visual Studio 2003 sur mon PC perso sous XP et Visual Studio 2008 sous Windows7 (64 bits) sur mon PC Pro.
    J'ai téléchargé et installé le WDK pour Studio 2008 et Windows7, mais toujours impossible de compiler mes exemples. J'ai essayé aussi d'installer le SDK Windows mais ça ne marche pas mieux pour autant.
    Ca va peut-être vous surprendre, mais je suis plus à l'aise avec mon bon vieux Studio 2003, mais là, impossible de trouver le WDK correspondant.

    Donc j'appelle à l'aide. Est-ce que quelqu'un peut m'aider à installer le bon SDK pour me permettre de démarrer mon projet?

    Merci,
    Eric

  2. #2
    Membre extrêmement actif

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 408
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 408
    Par défaut
    bonjour,

    poster les messages d'erreurs pourraient nous aider pour comprendre les problèmes.

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 25
    Par défaut
    Bien sûr, je vais détailler les erreurs, mais en fait ma question était double.

    1) Je préfèrerais récupérer l'ensemble des SDK nécessaires pour Visual Studio 2003. C'est vieux, très vieux, donc impossible de les trouver, Microsoft ne les publie plus. Donc si l'un d'entre vous a sur un vieux CD d'archive le WDK pour Studio 2003, je suis preneur.

    2) Comme je pense qu'il faut oublier Studio 2003, j'ai essayé de tout faire sur Studio 2008 (sours Win 7 Enterprise) avec le WDK 7.1.0.

    - A la 1ere compilation, j'ai une erreur car les headers hidsdi.h et hidpi.h sont introuvables. Normal. J'ajoute donc à mon projet le dossier 'inc\api' du WDK, dossier qui contient ces headers.

    - Je compile à nouveau et j'ai plein d'erreur provenant de new.h (header que je ne connaissais pas...), voici un extrait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    1>c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\new.h(60) : error C2065: '_In_opt_' : undeclared identifier
    1>c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\new.h(60) : error C2146: syntax error : missing ')' before identifier 'new_handler'
    1>c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\new.h(60) : warning C4229: anachronism used : modifiers on data are ignored
    1>c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\new.h(60) : error C2491: 'std::set_new_handler' : definition of dllimport data not allowed
    1>c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\new.h(60) : error C2059: syntax error : ')'
    1>c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\new.h(85) : error C2065: '_Size' : undeclared identifier
    1>c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\new.h(85) : error C2448: '_Ret_opt_bytecap_' : function-style initializer appears to be a function definition
    1>c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\new.h(86) : error C2065: '_Size' : undeclared identifier
    1>c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\new.h(86) : error C2448: '_Ret_opt_bytecap_' : function-style initializer appears to be a function definition
    1>c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\new.h(107) : error C2065: '_In_' : undeclared identifier
    - Je change alors le dossier d'include de mon projet en mettant simplement le dossier 'inc' du WDK. Par conséquent, je modifie mes

    includes pour qu'il trouve les headers:
    #include <api/hidsdi.h>
    #include <api/hidpi.h>
    Les erreurs de new.h disparaissent (c'est logique, il va chercher d'autres headers par un chemin relatif), mais j'ai tout plein d'autres erreurs, en particulier des constantes non définies:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    1>c:\dev\winddk\7600.16385.1\inc\api\hidpi.h(302) : error C2065: 'PASSIVE_LEVEL' : undeclared identifier
    1>c:\dev\winddk\7600.16385.1\inc\api\hidpi.h(303) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>c:\dev\winddk\7600.16385.1\inc\api\hidpi.h(303) : error C2146: syntax error : missing ';' before identifier 'NTSTATUS'
    1>c:\dev\winddk\7600.16385.1\inc\api\hidpi.h(303) : error C2143: syntax error : missing ';' before '__stdcall'
    1>c:\dev\winddk\7600.16385.1\inc\api\hidpi.h(303) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>c:\dev\winddk\7600.16385.1\inc\api\hidpi.h(303) : error C2377: 'NTSTATUS' : redefinition; typedef cannot be overloaded with any other symbol
    1>        c:\Dev\WinDDK\7600.16385.1\inc\api/hidsdi.h(32) : see declaration of 'NTSTATUS'
    1>c:\dev\winddk\7600.16385.1\inc\api\hidpi.h(307) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>c:\dev\winddk\7600.16385.1\inc\api\hidpi.h(323) : error C2065: 'DISPATCH_LEVEL' : undeclared identifier
    1>c:\dev\winddk\7600.16385.1\inc\api\hidpi.h(324) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>c:\dev\winddk\7600.16385.1\inc\api\hidpi.h(324) : error C2374: '__drv_maxIRQL' : redefinition; multiple initialization
    1>        c:\dev\winddk\7600.16385.1\inc\api\hidpi.h(302) : see declaration of '__drv_maxIRQL'
    En fouinant sur le web, j'ai trouvé que cela pouvait provenir de la priorité à donner aux dossier d'include dans les options du compilateur. En particulier ce lien.
    J'ai tout essayé et c'est là que je bloque, je n'arrive pas à passer au-delà de ces erreurs de compilation. Je n'ai donc même pas essayé le link...

    Merci de votre aide,
    Eric

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 489
    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 489
    Par défaut
    Bonne approche pour le changement dans les chemins des includes.


    En particulier les flèches dans le rond rouge le plus à droite.

  5. #5
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 25
    Par défaut
    Compris, je vais essayer de regarder ça de plus près.

    Merci,
    Eric

  6. #6
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 25
    Par défaut
    En effet, ça marche !!!
    J'étais gêné à l'idée de changer la priorité des répertoires d'include dans les options du compilateur car tous mes projets auraient été impactés. J'ai donc changer les propriétés du projet seulement pour ajouter les dossiers suivants (l'ordre est important):
    c:\Dev\WinDDK\7600.16385.1\inc\ddk;"$(VCInstallDir)include";c:\Dev\WinDDK\7600.16385.1\inc\api

    Sans en mettre plus, tout se compile sans problème, et pour l'édition de liens, c'est facile, il suffit d'ajouter le bon chemin et de ne pas oublier hid.lib.

    Merci à tous pour votre aide, et j'espère que cette information pourra être utile à d'autres...

    Eric

    PS. Je ne sais pas comment signifier que le problème est résolu...

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

Discussions similaires

  1. Lire/Ecrire sur lecteur USB en utilisant nrComm lib
    Par sandokhane dans le forum Composants VCL
    Réponses: 0
    Dernier message: 14/03/2010, 15h55
  2. Lire/Ecrire sur le poste Client
    Par xxkirastarothxx dans le forum Services Web
    Réponses: 1
    Dernier message: 16/03/2009, 12h08
  3. lire ecrire sur un fichier Excel
    Par mrkinfo dans le forum C#
    Réponses: 3
    Dernier message: 17/09/2008, 12h01
  4. Lire / Ecrire sur un port rs232 avec Qt possible?
    Par Fanta310 dans le forum Débuter
    Réponses: 11
    Dernier message: 16/06/2008, 17h03
  5. lire-ecrire sur port pci sous windows NT
    Par nanard36 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 02/03/2008, 19h14

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