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 :

DLL ne charge pas les librairies


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Par défaut DLL ne charge pas les librairies
    Salut tout le monde, j'ai développé une dll Qt qui contient 3 fonctions une pour la connexion à la base de données, une pour la déconnexion et la 3ème pour la manipulation des données de la base.
    Le problème c'est lorsque je veux tester cette dll en l'appelant depuis un autre programme, la dll ne charge pas les librairies necessaires pour la connexion à la base. Lorsque je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
             QStringList ActPathList = QCoreApplication::libraryPaths ();
             qDebug() <<  ActPathList.join("-");
    La liste des chemins est toujours vide. J'ai essayé d'incorporer ces 3 fonction dans un programme WindowForm et ça marche.
    J'ai aussi vérifié les propriètés du projets mais je n'ai constasté aucune anoamlie ou qque chose qui manque.
    Est ce que quelqu'un a une idée sur ce problème et pourrait me venir en aide.
    Merci d'avance.

  2. #2
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Par défaut La SOLUTION
    C'est juste pour l'info, mais c'est vrai qu'une dll ne comporte QApplication qui est responsable du chargement des librairies (CCoreApplication), mais c'est faisable et ce en utilisant le fichier source du plugins de connexion. Dans mon cas, je me connecte à une base Firebird et j'ai intégré dans les déclaration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include "C:\Qt\4.3.1\src\sql\drivers\ibase\qsql_ibase.cpp"
    et pour la connexion, j'ai utliser la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    int connexion(const char* path, char** ErrText)
    {
    	 connected = false;
     
    	 isc_db_handle con;
    	 con = 0L;
    	 ISC_STATUS status_vector[20]; 
    	 char *str = "C:\\SFMG\\ValidateTh\\DbSqlFb\\theriaque.fdb";
    	 char* user_name = "SYSDBA";
    	 char* user_password = "masterkey";
    	 char dpb_buffer[256], *dpb, *p;
    	 short dpb_length;
     
    	 /* Construct the database parameter buffer. */
    		dpb = dpb_buffer;
    		*dpb++ = isc_dpb_version1;
    		*dpb++ = isc_dpb_user_name;
    		*dpb++ = strlen(user_name);
    		for (p = user_name; *p;)
    			*dpb++ = *p++;
    			*dpb++ = isc_dpb_password;
    			*dpb++ = strlen(user_password);
    		for (p = user_password; *p;)
    			*dpb++ = *p++;
     
    	 dpb_length = dpb - dpb_buffer;
    	 long err  = isc_attach_database(status_vector, strlen(str), str, &con, dpb_length, dpb_buffer);
    	 if (status_vector[0] == 1 && status_vector[1])
    	 {
    		  isc_print_status(status_vector);
    		  printf("SQLCODE:%d\n", isc_sqlcode(status_vector));
    		  return -1;
    	 }
     
    	 QIBaseDriver *drv =  new QIBaseDriver(con);
    	 base = QSqlDatabase::addDatabase(drv); 
    	 connected = true;
    	 return 1;	
    }
    Vous pouvez vous référer à la documentation QSqlDatabase.
    Merci à tous.

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Dans le genre "faut surtout pas faire ça", on n'a pas encore fait mieux que l'inclusion de fichier source...

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par Matthieu Brucher Voir le message
    Dans le genre "faut surtout pas faire ça", on n'a pas encore fait mieux que l'inclusion de fichier source...
    mais non, y as surement pire
    Sinon, un peu de doc
    http://qt.developpez.com/doc/4.4/plu...static-plugins

Discussions similaires

  1. ListView dynamique ne charge pas les items suivants
    Par samos2 dans le forum Composants graphiques
    Réponses: 3
    Dernier message: 15/07/2012, 17h44
  2. JSonReader ne charge pas les données
    Par Trinou dans le forum Ext JS / Sencha
    Réponses: 5
    Dernier message: 23/09/2010, 15h10
  3. Réponses: 0
    Dernier message: 03/12/2009, 09h44
  4. Police PFM pas pris en charge pas les WinForms
    Par zicos dans le forum Windows Forms
    Réponses: 1
    Dernier message: 18/03/2009, 14h21

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