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 :

Impossible de lancer le programme : ftd2xx.dll manquante


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2019
    Messages : 21
    Par défaut Impossible de lancer le programme : ftd2xx.dll manquante
    Bonjour à tous,

    Je développe actuellement un logiciel sous VS2019. Dans une partie du code (communication avec un périphérique usb) j'inclus le .h suivant : "ftd2xx.h", j'ai bien fait l'éditions des liens dans le paramètrage de VS.
    Le logiciel ne se lance pas à cause de l'erreur suivante "ftd2xx.dll manquante".
    J'ai récupéré l'installer du driver sur le site de FTDI. Dans la doc de l'installer, il est écrit que le driver sera fini d'être installé quand j'aurais connecté le périphérique en question.
    Actuellement, je n'ai pas le périphérique sous la main pour finir l'installation.
    Mes questions :
    Si l'installation n'est pas finie, c'est normal que le fichier ftd2xx.dll soit introuvable?
    Sachant que ftd2xx.dll est bel et bien présent dans le répertoire CDM v2.12.28 WHQL Certified\amd64 et que je cible bien vers ce dossier.

    Si oui, est-ce que je peux coller ftd2xx.dll dans Windows/System32?
    EDIT : Non ça ne fonctionne pas, c'est pire ^^'

    D'avance, merci.

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Généralement, quand la compilation et l'édition de liens s'effectuent sans problème et que ton programme ne veut malgré tout pas se lancer sous prétexte d'une dll manquante, c'est "simplement" parce que la dll en question ne se trouve ni dans un dossier dans lequel le système d'exploitation sait devoir aller chercher après les dll (en gros : tous les dossier repris par la variable PATH ), ni dans le dossier dans lequel se trouve l'exécutable lui-même (ou est-ce le dossier à partir duquel l'exécutable est lancé j'ai toujours un doute sur ce point )

    La solution la plus simple est de localiser l'endroit ou cette dll existe et de la copier "tout bêtement" dans le dossier qui contient ton exécutable, en faisant juste attention à choisir la bonne "cible" pour la dll (debug ou release), si les deux existent
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2019
    Messages : 21
    Par défaut
    Bonjour,
    Alors, j'ai copié la dll dans le dossier qui va bien et.... plus de problème de DLL mais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L'application n'a pas réussi à démarrer correctement (0xc000007b)
    C'est embêtant...

  4. #4
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Ca, c'est parce qu'il existe une très grosse différence entre un "code valide" (accepté par le compilateur) et un "code correct" (comprend : qui fourni, sur base d'une situation donnée, le résultat attendu, prévisible et reproductible)

    Si, pour une raison ou une autre, ton application "plante" alors qu'elle est à peine occupée à démarrer, c'est sans doute que ton code est "valide" (accepté par le compilateur) mais ... incorrect.

    Sans rien savoir de ton projet, et surtout sans disposer du code, il est particulièrement difficile de t'aider! On peut cependant raisonnablement partir du principe que tu as sans doute foutu un sérieux bordel au niveau de l'utilisation des pointeurs
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2019
    Messages : 21
    Par défaut
    Mon programme compile et fonctionne "correctement" en version debug.
    Dès que j'inclus la DLL et que j'utilise les fonctions de la lib ftdi, j'ai ce message...
    Voilà le code en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FT_STATUS ftStatus = 0;
    ftStatus = FT_OpenEx(m_SerialNumberX, FT_OPEN_BY_SERIAL_NUMBER, &m_ftHandle);
    Dès que je commente ce code, le programme se lance et fonctionne.

    EDIT:
    En gros, je développe une interface graphique qui me permet de communiquer avec des périphériques externes.

  6. #6
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Mon programme compile "correctement"
    C'est donc un code "valide" (accepté par le compilateur) mais "incorrect" (qui ne suit pas tout à fait la logique imposée par l'utilisation de la bibliothèque externe
    Mon programme fonctionne "correctement" en version debug.
    Dès que j'inclus la DLL et que j'utilise les fonctions de la lib ftdi, j'ai ce message...
    Voilà le code en question :
    Le code ne fonctionne donc pas "correctement" en mode débug

    Au mieux, on peut faire valoir que "la partie du code qui ne dépend pas de la bibliothèque externe semble fonctionner", mais cela reste encore à prouver

    Et, donc c'est qu'il y a un problème lorsque tu essaye de faire appel à la fonction FT_OpenEx.

    Si l'on en crois le nom de cette fonction ainsi que les valeurs associées aux différents paramètres que tu lui transmet, il semblerait que cette fonction ait pour but d'assurer la connexion du périphérique branché sur le port USB afin de pouvoir mettre en place le protocole de communication.

    La première chose étant donc de tester la valeur de retour de cette fonction en s'assurant qu'elle ne correspond pas à un code d'erreur, avec un code proche de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    /* pas besoin d'initialiser ftStatus à 0 si c'est pour en changer tout de suite la valeur ;) */
    FT_STATUS ftStatus =  FT_OpenEx(m_SerialNumberX, FT_OPEN_BY_SERIAL_NUMBER, &m_ftHandle);
    if(ftStatus != 0 ) { // je pars du principe que cette fonction renvoie 0 si tout s'est bien déroulé... à adapter
        /*il y a eu un problème, ftStatus devrais te permettre de récupérer une chaine de caractères plus "compréhensible
         * à propos du problème
         */
       char * error = /* la fonction qui permet de récupérer la chaine de caractères */;
       throw std::runtime_error(error);
    }
    /* si on arrive ici, la connexion s'est établie correctement, on peut donc passer
     * à la suite
     */
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

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

Discussions similaires

  1. [Python 2.X] Impossible de lancer mon programme externe depuis python
    Par johnsdoeuf dans le forum Général Python
    Réponses: 3
    Dernier message: 07/08/2014, 21h32
  2. [Eclipse] Impossible de lancer mon programme
    Par ycf16 dans le forum Android
    Réponses: 7
    Dernier message: 22/11/2013, 16h56
  3. [WS 2003] Impossible de lancer un programme avec un utilisateur Active Directory
    Par tom741 dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 17/12/2010, 11h24
  4. Impossible de lancer un programme depuis powerpoint
    Par adelsunwind dans le forum Powerpoint
    Réponses: 1
    Dernier message: 05/06/2009, 10h39
  5. Impossible de lancer mon programme, problème de compilation
    Par beegees dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/12/2008, 17h03

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