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

Qt Discussion :

Intégrer une bibliothèque dans un projet sans le .h


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 34
    Par défaut Intégrer une bibliothèque dans un projet sans le .h
    Voila mon problème, j'ai réalisé une application de connexion sur un serveur distant (facile).
    Maintenant, je voudrais que la personne ce connecte passe une carte à puce dans un boitier, puis je transfererai les informations de cette carte a mon serveur qui donnera son aval ou non pour la connexion. Dans le principe c'est assez simple mais mon problème c'est que j'ai récupéré une librairie pour connecter et récuperer des informations sur mes cartes a puces mais impossible de lancer ces fonctions.
    Les fichiers que j'ai en ma possession sont:
    - une doc décrivant les fonctions (et paramètres attendus) et les classes présent dans la librairie
    - la librairie cpsw32.lib
    - et une dll cpsw32.dll
    Comment faire pour utiliser les fonctions et classes de ces fichiers pour faire fonctionner mon application.

  2. #2
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Par défaut
    Si tu connais le prototype des fonctions que tu souhaites appeller tu peux utiliser ça avec Qt :
    http://developer.qt.nokia.com/doc/qt-4.8/qlibrary.html

    Sinon tu peux utiliser directement l'API de l'OS que tu utilises.
    En l’occurrence je pense Windows avec ceux-ci:
    http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
    http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 34
    Par défaut
    Merci de ta réponse mais j'ai un autre problème. Si je prend ta méthode, je peut lancer des fonctions et récupérer des codes retour mais certaines d'entre elles attendent en paramètre des classes se trouvant dans la dll

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CPS_OuvertureSession( PSTRG   pNomRessource,
                                           PSTRG   pNomAppli,
                                           struct  CPS_StatusService PTR pStatusService,
                                           PUINT16 pNumSession,
                                           PUINT8  pFU);
    PSTRG = QString
    PUINT16 = uint16_t
    PUINT8 = uint8_t

    truct CPS_StatusService ??? est une classe se trouvant dedans qui a la forme suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /* Structure contenant au retour l'ensemble des status de l'API */
    typedef struct CPS_StatusService {
           UINT16  NumVersionAPIs;                /* numero de version des APIs */
           UINT16  NumVersionAPI;                 /* numero de version du service */
           UINT16  NumAPI;                          /* numero du service API */
           UINT16  StatusAPI;                      /* code retour de l'API */
           UINT16  StatusGestionnaire;         /* resultat d’execution des fonctions du Gestionnaire. */
           UINT16  StatusInterne;              /* etape interne du service */
           UINT16  StatusLecteur;            /* Code retour lecteur */
           UINT16  StatusCarte;              /* Status Carte ME1-ME2 */
      } CPS_StatusService;
    Donc comment faire pour initialiser cette classe avec ta QLibrairy

  4. #4
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Par défaut
    Tu refais un .h ou tu définis cette structure comme dans le code que tu propose et normalement tout devrais fonctionner.

    Pour info je ne pense pas que PSTR = QString mais bon peut etre a toi de me le dire...
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 34
    Par défaut
    Merci pour ton aide, donc je fais un .h et include ma lib dans le fichier .pro

    Maintenant, j'ai un nouveau problème qui est le suivant: Je veux lancer la fonction CPS_OuvertureSession

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    uint16_t CPS_OuvertureSession(QString   pNomRessource,
                                           QString   pNomAppli,
                                           CPS_StatusService pStatusService,
                                           uint16_t pNumSession,
                                           uint8_t pFU);
    Et la structure CPS_StatusService ce situe aussi dans le fichier .h de la librairie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    typedef struct CPS_StatusService {
      uint16_t  NumVersionAPIs;     /* numero de version des APIs */
      uint16_t  NumVersionAPI;      /* numero de version du service */
      uint16_t  NumAPI;             /* numero du service API */
      uint16_t  StatusAPI;          /* code retour de l'API */
      uint16_t  StatusGestionnaire; /* resultat d’execution des fonctions du Gestionnaire. */
      uint16_t  StatusInterne;      /* etape interne du service */
      uint16_t  StatusLecteur;      /* Code retour lecteur */
      uint16_t  StatusCarte;        /* Status Carte ME1-ME2 */
      } CPS_StatusService_t;

    Mais lorsque je veux effectuer cette fonction, je dois créer une
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CPS_SituationPS pStatusService = new CPS_SituationPS();
    Puis faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    uint16_t cps_session = CPS_OuvertureSession(NomRessource, NomAppli, pStatusService, numsession, numLAD);
    Mais j'ai un retour d'erreur suivant :

    conversion from 'CPS_SituationPS*' to non-scalar type 'CPS_SituationPS' requested

    Une petite idée ???
    Merci déjà de votre aide

  6. #6
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Ça saute aux yeux, tu as oublié une * à la déclaration du pointeur.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/04/2015, 00h16
  2. Intégrer une dll dans un projet VB.NET
    Par Nijin dans le forum Accès aux données
    Réponses: 2
    Dernier message: 19/04/2014, 02h33
  3. intégrer une bibliothèque dans un IDE
    Par Akramou dans le forum C++
    Réponses: 3
    Dernier message: 29/02/2012, 07h26
  4. Réponses: 0
    Dernier message: 25/05/2011, 16h53
  5. Réponses: 1
    Dernier message: 28/01/2011, 12h11

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