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

C++ Discussion :

Problème de portabilité des DLLs


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    screetch
    Invité(e)
    Par défaut Problème de portabilité des DLLs
    [EDIT 3DArchi] Suite à cette discussion [/EDIT]

    je n'ai pas compris... pourquoi ne pas exporter des classes ?

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Citation Envoyé par screetch Voir le message
    je n'ai pas compris... pourquoi ne pas exporter des classes ?
    Tu importes tes classes comment en VB, par exemple ? Ou en Delphi, ou Fortran, ou tout autre langage qui n'est pas du C++ ?
    Autre point "rigolo" : GCC et Visual n'utilisent pas les mêmes conventions pour le mangling => tu résouds ça comment ?

    Une DLL "correcte", c'est uniquement des fonctions à l'export, toutes en convention d'appel stdcall, et bien sûr sans aucune décoration. Tu noteras d'ailleurs que c'est le cas de quasiment toutes les DLL système de Windows.


    EDIT : Et en plus, dans un cas pareil, tu peux assurer au maximum un link JIT de la DLL en question, greffer un stub en lieu et place si elle est absente, bref avoir une gestion correcte de la présence/absence de la DLL et/ou des évolutions de version.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  3. #3
    screetch
    Invité(e)
    Par défaut
    ah ok je vois

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 392
    Par défaut
    Et si tu veux toujours faire de l'orienté objet avec ça, il reste l'option de faire une DLL COM.
    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. #5
    screetch
    Invité(e)
    Par défaut
    et en portable ?

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 392
    Par défaut
    Il n'y a pas de DLL en portable de toute façon. Je ne sais pas comment les SO marchent, peut-être ont-ils un mécanisme similaire à l'importation statique retardée...
    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.

  7. #7
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Citation Envoyé par screetch Voir le message
    et en portable ?
    Pas de portabilité, là on parle d'éléments natifs du système. Le mot "portable" n'existe même pas à ce stade !

    Tu peux avoir des librairies d'encapsulation de ces mécanismes, permettant d'avoir "tout comme", mais cela demande à utiliser ces mécanismes justement. Par exemple, POCO fournit une API de type plugin qui permet effectivement d'avoir des équivalents de DLL JIT, mais ça t'oblige à développer ta DLL suivant cette architecture (donc, mort pour les DLL déjà existantes dont tu n'as pas les sources).

    Pour les SO, il existe dlopen qui joue le même rôle que LoadLibrary sous Windows.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

Discussions similaires

  1. [Débutant] problème de réference des DLLS dans unity3d script
    Par amlil-cs dans le forum C#
    Réponses: 12
    Dernier message: 22/02/2014, 18h24
  2. problème de référence des dlls directx dans unity
    Par amlil-cs dans le forum Unity
    Réponses: 2
    Dernier message: 22/02/2014, 17h59
  3. problème d'installation des DLL IPMONTR et IPPROMON
    Par midou256 dans le forum Windows 7
    Réponses: 4
    Dernier message: 24/08/2011, 12h28
  4. Problème avec des dll c++ en c#
    Par koaxe dans le forum C++/CLI
    Réponses: 24
    Dernier message: 10/09/2007, 10h00
  5. [Dll & Déploiment] Problème avec des dll nonmanagée
    Par genki dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 27/03/2007, 09h32

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