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 :

Problèmes de génération de dll de l'USB HID !


Sujet :

Visual C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Problèmes de génération de dll de l'USB HID !
    Bonjour,

    Je suis en train de découvrir le développement des applications utilisant l'USB sous Windows. Une petite recherche m'a mené à cette API.
    En effet cette API fonctionne sur différentes plateformes. Pour moi ce qui m'intéresse est l'USB HID sous Windows. On trouve deux programmes de test : le premier est dans le répertoire "windows" et le deuxième est une GUI sous le répertoire "tesgui". Pour pouvoir compiler cette dernière il suffit d'extraire ce dossier dans le même répertoire que hidapi-0.7.0.

    Bref, j'ai essayé de compiler le programme sous le répertoire "windows", la compilation et la génération de la dll ont réussi mais lors de l'exécution les messages suivants s'affichent et le programme ne se lance pas

    'hidtest.exe'*: Chargé 'C:\Users\Noussaier\Desktop\USB_HID\hidapi-0.7.0\windows\Debug\hidtest.exe', Les symboles ont été chargés.
    'hidtest.exe'*: Chargé 'C:\Windows\System32\ntdll.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Windows\System32\kernel32.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Windows\System32\KernelBase.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Users\Noussaier\Desktop\USB_HID\hidapi-0.7.0\windows\Debug\hidapi.dll', Les symboles ont été chargés.
    'hidtest.exe'*: Chargé 'C:\Windows\System32\setupapi.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Windows\System32\cfgmgr32.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Windows\System32\msvcrt.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Windows\System32\rpcrt4.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Windows\System32\advapi32.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Windows\System32\sechost.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Windows\System32\gdi32.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Windows\System32\user32.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Windows\System32\lpk.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Windows\System32\usp10.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Windows\System32\oleaut32.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Windows\System32\ole32.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Windows\System32\devobj.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Windows\System32\msvcr100d.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Windows\System32\imm32.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Windows\System32\msctf.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Program Files\Hewlett-Packard\IAM\Bin\APSHook.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Windows\System32\shlwapi.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Windows\System32\hid.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Windows\System32\wintrust.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Windows\System32\crypt32.dll', Cannot find or open the PDB file
    'hidtest.exe'*: Chargé 'C:\Windows\System32\msasn1.dll', Cannot find or open the PDB file
    Le programme '[6840] hidtest.exe: Natif' s'est arrêté avec le code 1 (0x1).

    Pour ce programme de test est ce que la génération de dll s'est effectuée correctement ?? Si oui comment je peux l'utiliser dans un simple programme en C++ ??

    Pour le programme de test sous "testgui", lors de la compilation les warnings suivants s'affichent et la dll ne se génère pas.

    1>------ Début de la génération*: Projet*: testgui, Configuration*: Debug Win32 ------
    1> hid.c
    1> test.cpp
    1>c:\users\noussaier\desktop\usb_hid\hidapi-0.7.0\testgui\test.cpp(349): warning C4018: '<'*: incompatibilité signed/unsigned
    1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(990,5): warning MSB8012: TargetPath(C:\Users\Noussaier\Desktop\USB_HID\hidapi-0.7.0\testgui\Debug\testgui.exe) ne correspond pas à la valeur de la propriété OutputFile (C:\Users\Noussaier\Desktop\USB_HID\hidapi-0.7.0\testgui\testgui.exe) de Linker. Cela peut entraîner une génération incorrecte de votre projet. Pour corriger ce problème, vérifiez que les valeurs des propriétés $(OutDir), $(TargetName) et $(TargetExt) correspondent à la valeur spécifiée dans %(Link.OutputFile).
    1> Création de la bibliothèque C:\Users\Noussaier\Desktop\USB_HID\hidapi-0.7.0\testgui\Debug\testgui.lib et de l'objet C:\Users\Noussaier\Desktop\USB_HID\hidapi-0.7.0\testgui\Debug\testgui.exp
    1>LINK : warning LNK4098: conflit entre la bibliothèque par défaut 'LIBCMT' et les autres bibliothèques*; utilisez /NODEFAULTLIB:library
    1> Création de la bibliothèque C:\Users\Noussaier\Desktop\USB_HID\hidapi-0.7.0\testgui\Debug\testgui.lib et de l'objet C:\Users\Noussaier\Desktop\USB_HID\hidapi-0.7.0\testgui\Debug\testgui.exp
    1>LINK : warning LNK4098: conflit entre la bibliothèque par défaut 'LIBCMT' et les autres bibliothèques*; utilisez /NODEFAULTLIB:library
    1> testgui.vcxproj -> C:\Users\Noussaier\Desktop\USB_HID\hidapi-0.7.0\testgui\Debug\testgui.exe
    ========== Génération*: 1 a réussi, 0 a échoué, 0 mis à jour, 0 a été ignoré ==========

    Comment puis-je corriger ces erreurs afin de pouvoir générer la dll ???
    J'utilise Visual Studio 2010 Ultimate

    Merci beaucoup.

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 575
    Points
    41 575
    Par défaut
    Pour le coup de LIBCMT, regarde le réglage Project Properties -> C/C++ -> Code Generation -> Runtime Library :
    • Il y a a des chances qu'il soit en "Multi-Threaded (/MT)": C'est le mode qui utilise LIBCMT.
    • Passe-le en "Multi-Threaded DLL (/MD)" à la place (ce mode utilise MSVCRT à la place de LIBCMT).
    Alternativement, c'est déjà dans le second cas et ça marchera mieux en passant vers le premier.

    Si dans les deux cas tu as un conflit, c'est que tu as deux libs avec des configurations différentes. Auquel cas, bonne chance.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci Médinoc.

    J'ai changé le paramètre du projet et maintenant la génération de dll s'effectue sans erreurs. Mais j'ai un autre souci. En effet je voulais développer ma propre application avec Labwindows CVI en se basant sur cette librairie. Mais un message s'affiche indiquant que l'environnement Win32 n'est pas supporté. Comment rendre l'environnement Win32 supporté par CVI, ou au pire des cas comment changer du code pour atteidre le but ??

    Merci.

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 575
    Points
    41 575
    Par défaut
    Je ne connais pas du tût CVI, mais me demande si cela ne veut pas dire que tu es sur une machine 64 bits et que CVI exige donc des DLLs 64 bits.

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Non c'est pas ça le problème. En fait Labwindows CVI est un IDE destiné aux industriels qui contient des librairies déjà mis en place. Pour simplifier c'est du ANSI C. Donc ma tâche est de transformer la dll win32 pour être utilisé avec un C "simple".

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/04/2010, 12h14
  2. Problèmes de libération de Dll en delphi7 sous windows XP
    Par Tardiff Jean-François dans le forum Langage
    Réponses: 5
    Dernier message: 10/01/2006, 15h30
  3. Problème execution d'une DLL en ASP
    Par turcotm dans le forum ASP
    Réponses: 3
    Dernier message: 03/09/2005, 09h16
  4. Problème d'enregistrement de DLL
    Par chleuh dans le forum Langage
    Réponses: 5
    Dernier message: 01/07/2005, 10h30
  5. Problème mémoire avec une dll par chargement dynamique
    Par widze19 dans le forum C++Builder
    Réponses: 6
    Dernier message: 15/12/2003, 13h20

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