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 :

Compiler libusb-win32 sous Visual C++


Sujet :

C

  1. #21
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 188
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 188
    Points : 17 139
    Points
    17 139
    Par défaut
    Ca peut être le genre de situation où refaire le projet.

    Je veux dire:
    1. créer un nouveau projet C
    2. recréer les fichiers un par un (en copiant le code)
    3. vérifier les options générale de compilation
    4. compiler
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  2. #22
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2013
    Messages : 57
    Points : 17
    Points
    17
    Par défaut
    Déjà : si ton VS est assez récent, il te grisera les lignes de précompilation qu'il ne lira pas (utile pour ton extern par exemple ! ).
    Oui, en effet, j'y ai pensé et je n'ai pas trouvé de lien entre les parties grisées et mes erreurs dans la suite du programme (je revérifierai peut-être quand même...)

    Sur linux, la ligne serait
    Ah oui, mais on m'a demandé de développé sous Windows et je suis loin de connaître Linux

    Ainsi, les includes locaux sont recherchés dans le dossier courant ET dans include !
    Il trouve bien les fichiers que je souhaite utiliser, ce problème là est réglé (ça en fait au moins un )

    Je ne pense pas que tu sois du genre à déclarer des structures vides...
    Ah si si! C'est un de mes jeux favoris! Ca fait des lignes de codes en plus inutilement, ça m'occupe Trève de plaisanterie....

    EDIT : la remarque de leternel page suivante est aussi une très bonne idée pour savoir où l'on en est, et repartir sur des bases saines.
    Ca peut être le genre de situation où refaire le projet.

    Je veux dire:

    créer un nouveau projet C
    recréer les fichiers un par un (en copiant le code)
    vérifier les options générale de compilation
    compiler
    Je vais faire ça je crois alors... Je vous tiens au jus!

  3. #23
    Membre expert
    Avatar de Metalman
    Homme Profil pro
    Enseignant-Chercheur
    Inscrit en
    Juin 2005
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant-Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 049
    Points : 3 532
    Points
    3 532
    Par défaut
    Si j'ai mis l'exemple du linux et autre...
    C'est justement pour que tu ne mettes pas les headers "non fournis par VS" avec ceux fournis avec VS !
    Peut être que VS compile quelquechose d'autre, ou include quelquechose et il utilise tes headers au lieu de ce qu'il faut (très très très peu probable).

    Enfin garder une installation propre de VS c'est toujours mieux, et c'est pour ça que je te disais de jouer un peu avec le menu "projet" et toutes ses options.
    --
    Metalman !

    Attendez 5 mins après mes posts... les EDIT vont vite avec moi...
    Les flags de la vie : gcc -W -Wall -Werror -ansi -pedantic mes_sources.c
    gcc -Wall -Wextra -Werror -std=c99 -pedantic mes_sources.c
    (ANSI retire quelques fonctions comme strdup...)
    L'outil de la vie : valgrind --show-reachable=yes --leak-check=full ./mon_programme
    Et s'assurer que la logique est bonne "aussi" !

    Ma page Developpez.net

  4. #24
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2013
    Messages : 57
    Points : 17
    Points
    17
    Par défaut
    Je suis en train de suivre vos conseils et refaire un nouveau projet.

    En ajoutant les fichiers un par un et en regardant avec quels header ils sont liés, je suis tombé sur ça:

    Code error.c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #if IS_DRIVER
    	#ifdef __GNUC__
    		#define OBJ_KERNEL_HANDLE       0x00000200L
    		#include <ddk/usb100.h>
    		#include <ddk/usbdi.h>
    		#include <ddk/winddk.h>
    		#include "usbdlib_gcc.h"
    	#else
    		#include <ntddk.h>
    	#endif
    #else
    	#include <windows.h>
    #endif

    Tout ce qui est entre _GNUC_ et le #else apparaît en clair donc n'est pas utilisé. Ce qui revient à dire que ce n'est pas un driver.... Pas top quand on veut justement faire un driver!
    Et du coup, je me demande si je n'aurais pas des erreurs qui pourraient être liées à ça. J'ai bien envie de forcer ce #if (et mettre windows.h en commentaire, VC va gueuler sinon!)

  5. #25
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2013
    Messages : 57
    Points : 17
    Points
    17
    Par défaut
    Ca avance, ça avance.... Mais ce n'est pas encore tout à fait ça...

    c:\winddk\7600.16385.1\src\driver\driverbis\driverbis\libusb_dyn.c(28): error C2143: erreur de syntaxe*: absence de '{' avant '*'
    c:\winddk\7600.16385.1\src\driver\driverbis\driverbis\libusb_dyn.c(29): error C2143: erreur de syntaxe*: absence de ')' avant '*'
    c:\winddk\7600.16385.1\src\driver\driverbis\driverbis\libusb_dyn.c(29): error C2143: erreur de syntaxe*: absence de '{' avant '*'
    c:\winddk\7600.16385.1\src\driver\driverbis\driverbis\libusb_dyn.c(29): error C2059: erreur de syntaxe*: ')'
    Ca concerne les lignes suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    typedef usb_dev_handle * (*usb_open_t)(struct usb_device *dev);
    typedef int (*usb_close_t)(usb_dev_handle *dev);
    J'ai ce type d'erreurs à chaque fois qu'apparait usb_dev_handle, il est souligné en rouge (donc il ne trouve pas son proto et je le cherche!!).
    Je me console en voyant que le nombre d'erreurs totales est bien moins conséquent qu'avant

  6. #26
    Membre expert
    Avatar de Metalman
    Homme Profil pro
    Enseignant-Chercheur
    Inscrit en
    Juin 2005
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant-Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 049
    Points : 3 532
    Points
    3 532
    Par défaut
    En fouinant sur le net, je vois des :

    struct usb_dev_handle;
    typedef struct usb_dev_handle usb_dev_handle;
    Dans un usb.h...

    Alors comme tu travailles avec la version win32, pas sûr que ça te convienne... ^^'
    Et je crois que cela te ferait revenir au "struct usb_dev_handle should contains at least 1 member" ou quelque chose du genre.


    Mais en REFOUINANT sur google avec "usb_dev_handle win32", et en allant sur le repo principal.... haha !
    Je vois ça, qui contient également (lignes 308 - 309) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    struct usb_dev_handle;
    typedef struct usb_dev_handle usb_dev_handle;
    Mais SURTOUT ça, qui contient ce que l'on cherche (ligne 45 - 58) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    struct usb_dev_handle
    	{
    	    int fd;
     
    	    struct usb_bus *bus;
    	    struct usb_device *device;
     
    	    int config;
    	    int interface;
    	    int altsetting;
     
    	    /* Added by RMT so implementations can store other per-open-device data */
    	    void *impl_info;
    	};
    Je pense que tu devrais include usbi.h au .c qui te sort ta dernière erreur !
    --
    Metalman !

    Attendez 5 mins après mes posts... les EDIT vont vite avec moi...
    Les flags de la vie : gcc -W -Wall -Werror -ansi -pedantic mes_sources.c
    gcc -Wall -Wextra -Werror -std=c99 -pedantic mes_sources.c
    (ANSI retire quelques fonctions comme strdup...)
    L'outil de la vie : valgrind --show-reachable=yes --leak-check=full ./mon_programme
    Et s'assurer que la logique est bonne "aussi" !

    Ma page Developpez.net

  7. #27
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2013
    Messages : 57
    Points : 17
    Points
    17
    Par défaut
    Ah tu as été plus rapide que moi!

    J'ai ajouté ce header puis compilé; j'ai eu des erreurs parce que pour Visual, interface doit être un mot réservé vu qu'il apparaît en bleu. Je ne sais pas à quoi il correspond (je m'y intéresserai peut-être plus tard si j'ai le temps) mais du coup je l'ai changé en inter et j'ai modifié les autres fichiers en conséquence.

    Maintenant, c'est dans usbi.h que j'ai des erreurs du même type que précédemment. Vu qu'il appelle lusb0_usb, je vais aller fouiner dedans....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void usb_fetch_and_parse_descriptors(usb_dev_handle *udev);
    c:\winddk\7600.16385.1\src\driver\driverbis\driverbis\usbi.h(66): error C2143: erreur de syntaxe*: absence de '{' avant '*'
    c:\winddk\7600.16385.1\src\driver\driverbis\driverbis\usbi.h(66): error C2059: erreur de syntaxe*: ')'
    Et note importante: vraiment merci pour le coup de main!!!

  8. #28
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2013
    Messages : 57
    Points : 17
    Points
    17
    Par défaut
    Ca avance, ça avance

    J'ai toujours des erreurs (celles dont je n'ai pas parlé et que je gardais pour la fin) mais ce ne sont que des "identificateurs non déclarés".

    Ce n'est peut-être qu'un header auquel je dois modifier le nom des variables ou un fichier oublié... Je suis quasiment certain que le plus dur est fait maintenant!

    Merci pour votre coup de main!!

  9. #29
    Membre expert
    Avatar de Metalman
    Homme Profil pro
    Enseignant-Chercheur
    Inscrit en
    Juin 2005
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant-Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 049
    Points : 3 532
    Points
    3 532
    Par défaut
    Recherche bien dans le dépôt de la libusb win32 les .h qui ont des noms "intéressants", et recherche dedans les variables/strcutures/autre...

    Et au pire : google directement le nom des objets et 'libusb win32' ! xD
    --
    Metalman !

    Attendez 5 mins après mes posts... les EDIT vont vite avec moi...
    Les flags de la vie : gcc -W -Wall -Werror -ansi -pedantic mes_sources.c
    gcc -Wall -Wextra -Werror -std=c99 -pedantic mes_sources.c
    (ANSI retire quelques fonctions comme strdup...)
    L'outil de la vie : valgrind --show-reachable=yes --leak-check=full ./mon_programme
    Et s'assurer que la logique est bonne "aussi" !

    Ma page Developpez.net

  10. #30
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2013
    Messages : 57
    Points : 17
    Points
    17
    Par défaut
    J'arrive bientôt au bout! J'ai trouvé un header qui me manquait, modifié un autre... (ma version de libusb ne doit pas complétement correspondre aux header de mon WDK)

    Il n'y a plus que error.c qui génère des erreurs (un comble hein? )
    Son code est dispo ici
    Et ce que j'ai en erreurs:

    c:\winddk\7600.16385.1\src\driver\driverbis\driverbis\error.c(115): warning C4996: 'strerror': This function or variable may be unsafe. Consider using strerror_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    c:\program files\microsoft visual studio 10.0\vc\include\string.h(157)*: voir la déclaration de 'strerror'
    c:\winddk\7600.16385.1\src\driver\driverbis\driverbis\error.c(129): warning C4013: 'FormatMessage' non défini(e)*; extern retournant int pris par défaut
    c:\winddk\7600.16385.1\src\driver\driverbis\driverbis\error.c(129): error C2065: 'FORMAT_MESSAGE_FROM_SYSTEM'*: identificateur non déclaré
    c:\winddk\7600.16385.1\src\driver\driverbis\driverbis\error.c(129): warning C4013: 'GetLastError' non défini(e)*; extern retournant int pris par défaut
    c:\winddk\7600.16385.1\src\driver\driverbis\driverbis\error.c(140): error C2065: 'ERROR_SUCCESS'*: identificateur non déclaré
    c:\winddk\7600.16385.1\src\driver\driverbis\driverbis\error.c(140): error C2051: l'expression associée à case n'est pas une constante
    c:\winddk\7600.16385.1\src\driver\driverbis\driverbis\error.c(142): error C2065: 'ERROR_INVALID_PARAMETER'*: identificateur non déclaré
    c:\winddk\7600.16385.1\src\driver\driverbis\driverbis\error.c(142): error C2051: l'expression associée à case n'est pas une constante
    c:\winddk\7600.16385.1\src\driver\driverbis\driverbis\error.c(144): error C2065: 'ERROR_SEM_TIMEOUT'*: identificateur non déclaré
    c:\winddk\7600.16385.1\src\driver\driverbis\driverbis\error.c(144): error C2051: l'expression associée à case n'est pas une constante
    c:\winddk\7600.16385.1\src\driver\driverbis\driverbis\error.c(145): error C2065: 'ERROR_OPERATION_ABORTED'*: identificateur non déclaré
    c:\winddk\7600.16385.1\src\driver\driverbis\driverbis\error.c(145): error C2051: l'expression associée à case n'est pas une constante
    c:\winddk\7600.16385.1\src\driver\driverbis\driverbis\error.c(147): error C2065: 'ERROR_NOT_ENOUGH_MEMORY'*: identificateur non déclaré
    c:\winddk\7600.16385.1\src\driver\driverbis\driverbis\error.c(147): error C2051: l'expression associée à case n'est pas une constante
    J'ai regardé dans error.h, aucun nom qui ressemble de près ou de loin à ces erreurs (je les aurais modifié sinon) et je n'ai pas trouvé de fichier intéressant à include pour définir tout ça...

    Concernant error.c, j'ai modifié le #if au début pour le forcer à voir un driver.

    J'ai hâte de pouvoir compiler tout ça et avoir enfin un BSOD (un driver qui fonctionne du 1er coup? NAAAN!)

  11. #31
    Membre expert
    Avatar de Metalman
    Homme Profil pro
    Enseignant-Chercheur
    Inscrit en
    Juin 2005
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant-Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 049
    Points : 3 532
    Points
    3 532
    Par défaut
    Ligne 113 dans ton lien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                return strerror(usb_error_errno);
    D'après ce lien, on voit que le prototype qui t'intéresse est le 1er :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    errno_t strerror_s(
       char *buffer,
       size_t sizeInBytes,
       int errnum 
    );
    Et d'après ce lien, strerror fonctionne comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char *strerror(
       int errnum 
    );

    Au final...
    Tu devras sûrement faire quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return strerror_s("ERRNO : ", 8, usb_error_errno);
    Ce n'est qu'un warning il me semble donc rien de grave

    EDIT : ...oui tout ça, ce n'est que le 1er warning useless
    --
    Metalman !

    Attendez 5 mins après mes posts... les EDIT vont vite avec moi...
    Les flags de la vie : gcc -W -Wall -Werror -ansi -pedantic mes_sources.c
    gcc -Wall -Wextra -Werror -std=c99 -pedantic mes_sources.c
    (ANSI retire quelques fonctions comme strdup...)
    L'outil de la vie : valgrind --show-reachable=yes --leak-check=full ./mon_programme
    Et s'assurer que la logique est bonne "aussi" !

    Ma page Developpez.net

  12. #32
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Franchement, pour strerror(), tu auras plus vite fait avec un #define _CRT_SECURE_NO_WARNINGS plutôt qu'à te laisser entraîner par Microsoft dans du code non-standard.

    Pour FormatMessage(), c'est qu'il manque l'inclusion de <windows.h>.
    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.

  13. #33
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2013
    Messages : 57
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par Metalman
    Ce n'est qu'un warning il me semble donc rien de grave
    Oui, je pensais me pencher dessus à la fin....

    Citation Envoyé par Médinoc
    Pour FormatMessage(), c'est qu'il manque l'inclusion de <windows.h>.
    Je veux bien ajouter <windows.h> mais initialement, j'ai le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #if IS_DRIVER
    	#ifdef __GNUC__
    		#define OBJ_KERNEL_HANDLE       0x00000200L
    		#include <ddk/usb100.h>
    		#include "usb100.h"
    		#include <ddk/usbdi.h>
    		#include <ddk/winddk.h>
    		#include "usbdlib_gcc.h"
    	#else
    		#include "ntddk.h"
    	#endif
    #else
    	#include <windows.h>
    #endif
    Lorsque <windows.h> est inclu, c'est que ce n'est pas un driver. Si c'est un driver, ce sont les autres header qui sont ouverts, non?
    En laissant ce code tel quel, c'est windows.h qui est ouvert; j'ai donc forcé à considérer que c'est un driver (mon but final est quand même de faire un driver), donc windows.h n'est pas pris en compte.
    Après, il y a peut-être un truc qui m'échappe.

    J'ai quand même essayé de faire comme tu me l'as dis et j'ai des erreurs de linkage. Autrement, les autres ont disparues

    EDIT: petite question en plus, ntddk.h et windows.h ne peuvent jamais être utlisé ensemble, non?

    EDIT2:
    Ces erreurs de link m'embêtent aussi... Un exemple de ce que j'ai:

    install_filter_win.obj : error LNK2005: _info_text_0 déjà défini(e) dans inf_wizard.obj
    install_filter_win.obj : error LNK2005: _g_hInst déjà défini(e) dans inf_wizard.obj
    install_filter_win.obj : error LNK2005: _tooltips_dlg1 déjà défini(e) dans inf_wizard.obj
    ...
    LINK : warning LNK4031: aucun sous-système spécifié*; CONSOLE pris par défaut
    driver_registry.obj : error LNK2001: symbole externe non résolu __imp__ExAllocatePoolWithTag@12
    driver_registry.obj : error LNK2001: symbole externe non résolu __imp__ExFreePoolWithTag
    Vu qu'il me dit que certains sont définis dans plusieurs .obj, je me suis dit que j'allais enlever des objet... Ah ben ça fonctionne encore moins bien

  14. #34
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Dans ce cas, il y a clairement un problème dans error.c: Un driver ne peut pas utiliser une fonction Win32 comme FormatMessage()...
    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.

  15. #35
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2013
    Messages : 57
    Points : 17
    Points
    17
    Par défaut
    Je me disais bien aussi qu'il y avait un truc bizarre....

    EDIT: j'ai réfléchi un peu à midi et il n'y a peut-être pas de problème dans error.c en fait. Une fois terminée, libusb est censée donner un exécutable qui détecte les périphériques connectées et on choisit celui pour lequel on veut générer un driver. Ce n'est donc pas seulement un driver...

  16. #36
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2013
    Messages : 57
    Points : 17
    Points
    17
    Par défaut
    Après de multiples recherches, je touche presque au but!!!
    Une seule erreur persiste!

    ------ Début de la génération*: Projet*: DriverBis, Configuration*: Release Win32 ------
    LINK : fatal error LNK1181: impossible d'ouvrir le fichier en entrée 'usb.lib'
    ========== Génération*: 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
    Au départ j'ai cru qu'il n'arrivait pas à lire le fichier. Mais c'est en entrée que ça cloche en fait... C'est à dire?

  17. #37
    Membre expert
    Avatar de Metalman
    Homme Profil pro
    Enseignant-Chercheur
    Inscrit en
    Juin 2005
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant-Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 049
    Points : 3 532
    Points
    3 532
    Par défaut
    Tu as dû mal placer ton usb.lib il me semble...
    Tu l'as bien indiqué dans ton projet comme étant une lib externe à utiliser ?
    --
    Metalman !

    Attendez 5 mins après mes posts... les EDIT vont vite avec moi...
    Les flags de la vie : gcc -W -Wall -Werror -ansi -pedantic mes_sources.c
    gcc -Wall -Wextra -Werror -std=c99 -pedantic mes_sources.c
    (ANSI retire quelques fonctions comme strdup...)
    L'outil de la vie : valgrind --show-reachable=yes --leak-check=full ./mon_programme
    Et s'assurer que la logique est bonne "aussi" !

    Ma page Developpez.net

  18. #38
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2013
    Messages : 57
    Points : 17
    Points
    17
    Par défaut
    C'est ce que je pensais aussi mais il est placé avec les autres.

    Je l'ai ajouté aux dépendances supplémentaires... Je vais chercher s'il n'y a pas un truc qui s'appelle "dépendances externes" ou quelque chose dans le genre.

  19. #39
    Membre expert
    Avatar de Metalman
    Homme Profil pro
    Enseignant-Chercheur
    Inscrit en
    Juin 2005
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant-Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 049
    Points : 3 532
    Points
    3 532
    Par défaut
    Je n'ai pas de VS sous la main où je suis actuellement, mais voilà de la doc :
    http://msdn.microsoft.com/fr-fr/libr...=vs.80%29.aspx

    C'est dans le dernier chapitre "Utilisation des fonctionnalités de la bibliothèque statique dans l'application console" que tu devrais avoir une explication sur ce que tu dois faire.
    Dans ton cas, vu que c'est le linker qui râle, il n'y a aucun code à modifier, juste la référence au .lib à ajouter.
    --
    Metalman !

    Attendez 5 mins après mes posts... les EDIT vont vite avec moi...
    Les flags de la vie : gcc -W -Wall -Werror -ansi -pedantic mes_sources.c
    gcc -Wall -Wextra -Werror -std=c99 -pedantic mes_sources.c
    (ANSI retire quelques fonctions comme strdup...)
    L'outil de la vie : valgrind --show-reachable=yes --leak-check=full ./mon_programme
    Et s'assurer que la logique est bonne "aussi" !

    Ma page Developpez.net

  20. #40
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2013
    Messages : 57
    Points : 17
    Points
    17
    Par défaut
    Histoire de partir en week-end frustré, le client à qui était destiné le projet a revu son cahier des charges et du coup j'ai bossé sur tout ça pour rien.... Je crois que le pire, c'est que ça arrive alors que j'arrivais au bout....

    En tout cas, merci à ceux qui m'ont apporté leur aide pour ce programme!
    Lundi après-midi, j’essaierais de le faire compiler au moins pour ma satisfaction personnelle

Discussions similaires

  1. Compilation de GEOS sous Visual C++ 2005
    Par figuralegoric dans le forum Visual C++
    Réponses: 1
    Dernier message: 15/09/2009, 21h23
  2. Recuperation date de compilation sous visual c++
    Par semenzato dans le forum MFC
    Réponses: 4
    Dernier message: 20/12/2005, 14h43
  3. Réponses: 7
    Dernier message: 27/09/2005, 21h40
  4. problème de compilation sous visual C++
    Par fabmili dans le forum MFC
    Réponses: 4
    Dernier message: 08/02/2004, 19h52

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