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

Bibliothèques C++ Discussion :

dll : connaitre la version de mingw utilisée.


Sujet :

Bibliothèques C++

  1. #21
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    Sinon, sur la base de choses comme ça:
    http://chadaustin.me/cppinterface.html
    il me semble possible d'avoir des lib c++ qui exposent des objets avec une facade. Dans ce cas, la fonction libre en extern "C" sert de factory, il y a quelques complications mais après l'avoir déjà essayé entre gcc/mingw et MSVC, ça semble marcher.
    Il n'en reste pas moins qu'il y a des restrictions (pas de propagation d'exception à travers la DLL boundary, par d'instances de types de la STL transmis à travers la boundary...ça peut compliquer les choses et probablement que ça coûte en perf...

  2. #22
    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 519
    Points
    41 519
    Par défaut
    Si tu as réussi, je me permets de poser une question: SJ, DW... Ça veut dire quoi tous ces sigles?
    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.

  3. #23
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    En fait apparemment je n'ai pas tout à fait réussi, irrlicht semble être incompatible avec le sjlj

    Heureusement Irrlicht 1.8 est déjà compilée et semble marcher, il faut donc que je recompile tout en dw2

    Si j'ai bien compris, le sjlj va gérer les exceptions avec des setjump/longjump et dw2 va les gérer autrement.

    dw2 est apparemment le mingw "officel", et serait plus rapide au niveau des exception par contre il me semble qu'il a des problèmes avec pthread (?).

  4. #24
    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 519
    Points
    41 519
    Par défaut
    Merci.
    Je suis tombé sur un site qui dit le contraire sur le choix entre sjlj et dw2, mais j'ignore quel âge il a.

    GCC currently supports two methods of stack frame unwinding: Dwarf-2 (DW2) or
    SJLJ (setjmp/longjmp). Until recently, only SJLJ has been available for the
    Windows platform. This affects you, the end user, primarily in programs that
    throw and catch exceptions. Programs which utilize the DW2 unwind method
    generally execute more quickly than programs which utilize the SJLJ method,
    because the DW2 method incurs no runtime overhead until an exception is thrown.
    However, the DW2 method does incur a size penalty on code that must handle
    exceptions, and more importantly the DW2 method cannot yet unwind (pass
    exceptions) through "foreign" stack frames: stack frames compiled by another
    non-DW2-enabled compiler, such as OS DLLs in a Windows callback.

    This means that you should in general choose the SJLJ version of the TDM-GCC
    builds unless you know you need faster exception-aware programs and can be
    certain you will never throw an exception through a foreign stack area.
    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.

  5. #25
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    J'ai dû le lire trop vite

    J'ai surtout retenu :
    - DW2 : mingw officiel à utiliser de préférence
    - SJLJ : non-supporté par Irrlicht.

    ll faut aussi savoir que les dll DW2 sont incompatibles avec les dll SJLJ.

  6. #26
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 446
    Points : 43 090
    Points
    43 090
    Par défaut portage code sous linux
    Neckara,

    Juste pour info, J'ai commencé à coder sous Linux, puis est basculé sous Windows. J'ai installé la version qt avec Mingw. Alors pourquoi recompiler les Dlls ? tu as peut être tes raisons.

    qmake pour générer mon Makefile et puis voila conversion terminée. ce fut génial.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  7. #27
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Tout simplement parce que certaines dll ne sont pas compatibles avec le compilateur ou qu'on ne trouve pas certaines dll.

  8. #28
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    Alors pourquoi recompiler les Dlls ? tu as peut être tes raisons.
    Peut-être pour éviter les soucis/acrobaties que nous venons d'évoquer au long de ce thread?

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Quel version d'allegro utiliser avec Mingw 4.7.1?
    Par ShinobiX1 dans le forum Allegro
    Réponses: 1
    Dernier message: 07/10/2013, 14h11
  2. Réponses: 4
    Dernier message: 05/01/2012, 17h26
  3. Réponses: 5
    Dernier message: 10/03/2009, 11h54
  4. [VC++] Utilisation d'une DLL écrite en C++ avec mingw.
    Par swirtel dans le forum Visual C++
    Réponses: 1
    Dernier message: 20/06/2007, 10h42

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