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

wxWidgets Discussion :

Comment créer des dll avec wxWidgets sous Code Blocks.


Sujet :

wxWidgets

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de Claude URBAN
    Homme Profil pro
    Prendre le temps de vivre. . .
    Inscrit en
    Mai 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Prendre le temps de vivre. . .

    Informations forums :
    Inscription : Mai 2006
    Messages : 274
    Par défaut Comment créer des dll avec wxWidgets sous Code Blocks.
    Bonjour,

    Je fais appel à vous en dernier ressort, après avoir fouillé en vain dans tous les recoins possibles d'internet. (Merci Google ! )

    J'utilise, sous W10 (régulièrement mis à jour) wxWidgets 3.1.0 et la dernière version de Code Blocks, la 20.03.

    wxWidgets a été compilé avec GCC 4.9.2 (j'utilisais avant la version 16.1 de Code Blocks) que j'ai installé en doublon sur le nouveau Code Blocks.
    Pourquoi me diriez-vous ? Et bien pour éviter de recompiler wxWidgets avec le nouveau GCC 8.1.0 qui équipe la version 20.03 de C::B... (Flegme quand tu nous tiens... )

    wxWidgets a été compilé de la façon suivante :
    BUILD = Release, MONOLITHIC = 0, UNICODE = 1, SHARED = 1
    Tout fonctionne correctement, sauf que j'ai décidé d'apprendre à créer et utiliser des DLL.

    Et donc, je souhaiterai mettre dans une DLL certaines classes wxWidgets, tels que: wxFrame, wxPanel, wxBouton etc.

    Je cherche donc des explications et des exemples simples (pour commencer), fonctionnels et efficaces.

    Or le seul exemple de code fonctionnel, simple et efficace que j'ai pu trouver est celui du wxWiki qui utilise wxDynamicLibrary. (http://wiki.wxwidgets.org/WxDynamicLibrary)

    Je l'ai construit, il fonctionne correctement et j'ai, je pense, bien compris le fonctionnement de ce code.
    Mais pour le moment, il ne répond pas exactement à ce que je recherche.

    Les autres exemples que j'ai pu glaner ici et là sont, soit obsolètes, soit non fonctionnels ou trop compliqués, beaucoup de liens sont morts car trop vieux et je veux aussi rester sous et avec wxWidgets.

    Je souhaite commencer avec des exemples simples.
    Le but étant de comprendre pas de faire bêtement du "copier/coller".

    Espérant avoir été assez claire et explicite dans mes desiderata, j'attends avec impatience les réponses et aides que vous pourrez m'apporter.

    Avec mes remerciements.

    Bien à vous.

    Claude

  2. #2
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    J'ai pas bien compris...
    Tu essaies de mettre dans une DLL à toi des classes de wxWidgets ?
    C'est le build de wxWidgets qui le fait, et d'ailleurs, vu qu'il est compilé avec l'option SHARED, c'est déjà le cas.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  3. #3
    Membre chevronné Avatar de wxXav
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Décembre 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : Décembre 2008
    Messages : 214
    Par défaut
    Hello.

    Citation Envoyé par Claude URBAN Voir le message
    wxWidgets a été compilé avec GCC 4.9.2 (j'utilisais avant la version 16.1 de Code Blocks) que j'ai installé en doublon sur le nouveau Code Blocks.
    Pourquoi me diriez-vous ? Et bien pour éviter de recompiler wxWidgets avec le nouveau GCC 8.1.0 qui équipe la version 20.03 de C::B... (Flegme quand tu nous tiens... )
    Y'a qu'à demander : https://wxstuff.xaviou.fr

    Citation Envoyé par Claude URBAN Voir le message
    wxWidgets a été compilé de la façon suivante :
    BUILD = Release, MONOLITHIC = 0, UNICODE = 1, SHARED = 1
    Tout fonctionne correctement, sauf que j'ai décidé d'apprendre à créer et utiliser des DLL.

    Et donc, je souhaiterai mettre dans une DLL certaines classes wxWidgets, tels que: wxFrame, wxPanel, wxBouton etc.
    Comme l'a dit dragonjoker59 dans sa réponse : c'est déjà le cas puisque tu as une version dll de wxWidgets.

    Par contre, si tu souhaites placer dans ta dll tes propres classes dérivées des classes wxWidgets, c'est bien entendu tout à fait faisable.
    Et wxDynamicLibrary n'est pas nécessaire : cette classe ne sert (à mon avis mais je peux me tromper) qu'à charger des dlls dynamiquement sans qu'elles soient forcément liées à l'exécutable au moment de la compilation.

    Il faut donc partir sur un projet classique de lib dynamique sous Code::Blocks, ainsi qu'un projet contenant un exécutable de test (qui pourras dans un premier temps n'être qu'un petit projet "console").
    La première étape cruciale étant d'arriver à utiliser une fonction de la lib depuis l'exécutable (pour l'instant, je n'ai pas parlé fait allusion à wxWidgets).

    Ensuite, il faut arriver à créer (et bien entendu exporter) une classe basique (un truc bidon que tu pourras utiliser facilement depuis l'exécutable).

    Une fois que ces deux étapes sont passées avec succès, tu vas pouvoir y intégrer wxWidgets : il faudra ajouter au projet "dll" les réglages que tu dois déjà avoir pour une application wxWidgets classique, et ça devrait fonctionner.

    Je n'ai pas actuellement la possibilité de me pencher plus en avant sur le problème, mais je devrait pouvoir m'y atteler d'ici la semaine prochaine.
    Tiens nous au courant des tes éventuelles avancées, et j'essayerais de te pondre un petit truc fonctionnel dès que possible.

    Et si tu as besoin d'un coup de main pour installer une de mes versions de wxWidgets, ne te gênes pas....

    @+
    Xav'

  4. #4
    Membre éclairé
    Avatar de Claude URBAN
    Homme Profil pro
    Prendre le temps de vivre. . .
    Inscrit en
    Mai 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Prendre le temps de vivre. . .

    Informations forums :
    Inscription : Mai 2006
    Messages : 274
    Par défaut

    @ dragonjoker56

    Tout d'abord, merci pour avoir pris le temps de me lire et pour ta réponse.
    Désolé, je pensais avoir été suffisamment clair dans mon descriptif.
    Je vais donc essayé d'être plus précis.

    J'ai déjà une version DLL de wxWidgets et je ne souhaite pas en créer une autre.
    Je souhaite, par contre, créer un programme exécutable qui appellerait mes propres DLL dans lesquelles j'incorporerai mes propres classes dérivées des classes wxWidgets.

    Plutôt que de tout mettre dans un *.exe, je voudrai mettre une partie des fichiers de mon programme dans des DLL.
    En fait, additionner des "modules" à mon exe.

    J'espère avoir été plus précis dans mes explication et que tu pourras ainsi m'apporter ton aide.

    Merci et @++
    Claude



    @Wav'

    Merci pour ta réponse et content de te retrouver. (J'ai déjà eu à faire à tes connaissances et ton aide principalement sur ton site wxDev.fr, il y a quelque temps déjà... et en son temps, tes informations pour compiler wxWidgets m'ont été d'une aide précieuse.)

    Comme tu l'as bien compris, effectivement mon problème est de pouvoir placer dans une DLL mes propres classes dérivées de wxWidgets.

    Et l'arrivé d'un "petit truc personnel et fonctionnel" serait le bien venu.

    Comme expliqué plus haut, j'ai déjà construit un petit programme exécutable qui appelle une DLL très basique qui délivre simplement un message.
    Je voudrais maintenant, à la place de ce message, mettre une wxFrame ou une wxQuelconque...

    Je prends bonne note de ton coup de main pour installer une de tes version wxWidgets et t'en remercie, mais pour le moment je préfère rester comme je suis, cela me va bien.
    On verra peut-être plus tard.

    J'attends avec impatience ton "petit truc perso" et pendant ce temps je continue à chercher.

    Merci et @++
    Claude

  5. #5
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    j'ai déjà construit un petit programme exécutable qui appelle une DLL très basique qui délivre simplement un message.
    Tu as donc déjà fait et compris l'essentiel.
    Pour créer une DLL qui contient des classes dérivées (de classes wxWidgets ou autre), il faut faire la même chose.

    Par contre, comment souhaites tu travailler avec ta DLL ?
    La charger dynamiquement, pour appeler les fonctions que tu auras exportées, via wxDynamicLibrary ?
    Ou alors travailler avec comme tu travaillerais avec une bibliothèque statique (à quelques différences près) ?
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  6. #6
    Membre éclairé
    Avatar de Claude URBAN
    Homme Profil pro
    Prendre le temps de vivre. . .
    Inscrit en
    Mai 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Prendre le temps de vivre. . .

    Informations forums :
    Inscription : Mai 2006
    Messages : 274
    Par défaut
    comment souhaites tu travailler avec ta DLL ?
    Je souhaite utiliser mes DLL avec un chargement dynamique et de façon explicite.

    Merci et @++

  7. #7
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    Du coup, il te manque quoi, pour faire ce que tu veux ?
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/05/2010, 10h54
  2. Comment créer un menu avec un sous menu à partir de VB6
    Par alouca dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 24/03/2010, 23h12
  3. comment créer des pages avec le c
    Par litle-hacker dans le forum C
    Réponses: 8
    Dernier message: 21/07/2008, 17h34
  4. [Lazarus] Comment créer une DLL avec Lazarus
    Par rajawi00 dans le forum Lazarus
    Réponses: 1
    Dernier message: 19/07/2007, 13h49
  5. comment créer un forum avec C# sous ASP.Net?
    Par Peezgeuzg dans le forum C#
    Réponses: 1
    Dernier message: 23/03/2007, 11h30

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