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 :

Chargement de .dll/.so sous Qt.


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut Chargement de .dll/.so sous Qt.
    Bonjour, je vous explique ce que je veux faire:
    Créer X .dll ou .so qui exporte la fonction QString description() et qui revoie donc une descriptions, ensuite choisir d'appeler la fonction d'une dll précise et pas d'une autre. Pour les lister une à une et en tirer une à une les descriptions.
    Dans Qt creator je vois 3 choix: Shared library, Statilly linked library, QT 4 plugin, le quel choisir?
    Ensuite je trouve pas la doc trés claire, quelqu'un à sous la main un petit exemple de code qui permet de charger une dll, d'appeller la fonction QString description() puis de la décharger pour passer à la suivante? J'ai tester QPluginLoader ça me dit: Error append: The file '...' is not a valid Qt plugin (normal c'est une béte fichier teste que j'ai mit pour l'instant) mais après avec ça je sais pas comment appeler une fonction dedans.
    Merci de vos réponses, la doc n'as pas été suffisante pour ces point la.
    Enfaite les dll exporte toujours les mêmes fonctions, c'est à moi de switcher entre les dll.

  2. #2
    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

  3. #3
    Membre éclairé
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut
    avec le dernier liens et gcc 4.3 il me fait:
    warning: deprecated conversion from string constant to 'char*'
    Normal?

    Ok, la classe qui me manquai c'était donc QLibrary. A par le warning plus haut ça m'as l'aire d'être ce que je veux.

  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 alpha_one_x86 Voir le message
    avec le dernier liens et gcc 4.3 il me fait:
    warning: deprecated conversion from string constant to 'char*'
    Normal?
    pourquoi tu passe une QString en argument du resolve???

  5. #5
    Membre éclairé
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut
    Comment faire ça: en Qt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    extern "C" MY_EXPORT int avg(int a, int b)
     {
         return (a + b) / 2;
     }
    with MY_EXPORT defined as
     #ifdef Q_WS_WIN
     #define MY_EXPORT __declspec(dllexport)
     #else
     #define MY_EXPORT
     #endif
    En faite comment (avec quel macro) exporter des fonctions simple car j'ai pas besoin d'utiliser des classes?

    Non j'ai pris le code livrer dans l'exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    typedef int (*StringLength)(char*); // dfinition du type de fonction
    QLibrary lib("string_util"); // cration d'un objet QLibrary li  string_util (.dll, .so ou autre)
    StringLength strLength = (StringLength)lib.resolve("strlen"); // rcupration d'un pointeur sur notre fonction partage
    if(strLength)
        QMessageBox::information(NULL,"info",QString::number(strLength("QLibrary"))); // devrait renvoyer 9... si tout va bien ;)
    else
    	QMessageBox::information(NULL,"info",lib.errorString());

Discussions similaires

  1. Dll quickView sous XP
    Par jab dans le forum Windows XP
    Réponses: 5
    Dernier message: 23/06/2005, 18h52
  2. Comment créer une dll Win32 sous Delphi ?
    Par Mickey.jet dans le forum Langage
    Réponses: 8
    Dernier message: 16/06/2005, 15h38
  3. [D8] Utilisation dll D7 sous D8
    Par smyley dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 01/11/2004, 11h28
  4. chargement de dll xml
    Par chaudier dans le forum MFC
    Réponses: 4
    Dernier message: 05/12/2003, 10h49
  5. [Débutant][JNI]Erreur de chargement de dll
    Par Agifem dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 24/04/2003, 14h36

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