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

Langage Delphi Discussion :

Chargement d'une dll C++ avec Delphi


Sujet :

Langage Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Chargement d'une dll C++ avec Delphi
    Bonjour,
    j'ai des problème pour charger des librairies C++ avec Delphi7.
    Quand je demande de charger libpari.dll avec LoadLibrary(), on me repond qu'il faut la librairie cygwin1.dll. Mais quand je copie cygwin1.dll dans mon dossier, l'executable ne répond plus : aucun message, il n'apparait même pas dans les processus en cours de Windows. Ca se plante au moment du chargement.
    J'ai essayé de charger directement cygwin1.dll, c'est le même problème.
    Idem si j'utilise une interface.
    Je précise que je bricole en Delphi et en C++, et j'aimerais utiliser les librairies mathématiques C++ dans des applications Delphi.
    Merci si vous pouvez m'aider
    Rudi0

  2. #2
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    La seule solution est de réinstaller Delphi 7,ou d'installer Delphi 2005.
    (j'ai utilisé la même méthode sous Delphi 2005 Personal FR et ça marche très bien)
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5
    Points : 3
    Points
    3
    Par défaut the end
    ma réponse est un peu tardive mais c est que j ai pas mal galéré pour résoudre le problème. J ai donc suivi les conseils de Supersnail: j ai installé Delphi 2005. Mais même problème. Idem avec Visual Studio. Je peux charger Cygwin1.dll mais pas de dll utilisant Cygwin1.dll.
    Apparemment, le problème vient des dernières versions de Cygwin1 (1.5...).
    Avec la version 1.3.10 plus de problème. J'ai donc dû installer une version ancienne (2002) mais partielle de Cygwin. Et ca marche à merveille.
    En tout cas, merci à SuperSnail pour son aide

  4. #4
    Membre éprouvé
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 988
    Points
    988
    Par défaut
    Juste comme ça : et s'il s'agissait simplement d'un problème de convention d'appel ?

    J'ai déjà vu certaines dll en C(++) dans lesquelles l'auteur n'avait pas jugé utile de préciser la directive _stdcall pour les fonctions exportées.

    Certaines des dll que tu cites sont peut-être dans ce cas, d'autres non, ce qui explique le comportement en apparence erratique.

    As-tu essayé d'importer les fonctions des dll "fautives" dans Delphi avec la convention cdecl ? Ou je suis peut-être à côté du problème...

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Je ne crois pas que ce soit ça. Le problème survenait au chargement de la librairie, même si aucune fonction n'était appelée. Le programme se bloquait, et je devais arreter le processus. Les dll compilée avec le compilateur Cygwin fonctionnait avec Cygwin, mais buggait avec VC++ et Delphi. Des dll faits maison pour tester ont donner le même résultat.
    Je pense qu'il y a actuellement un problème de liaison entre la dll et Cygwin1.dll. Enfin c'est plutôt mon opinion, parce que les dll qui appellent d'autres dll, ca dépasse de loin mes compétences.

  6. #6
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Avril 2007
    Messages : 89
    Points : 61
    Points
    61
    Par défaut Voir laide
    Vous Pouvez Voir l'aide de Delphi de DLL
    Salut Pour Tout Le Monde

  7. #7
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Je pense que tes librairies ont du être compilées avec gcc.

    Les exécutables compilés avec gcc requièrent la présence de la bibliothèque Cygwin (cygwin1.dll) pour s'exécuter
    A la limite,si tu as le source,tu peux utiliser cette option avec gcc :

    -mno-cygwin
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/03/2015, 10h23
  2. Appel d'une DLL C# avec Delphi 7.
    Par popo dans le forum C#
    Réponses: 4
    Dernier message: 17/03/2015, 11h38
  3. Utiliser une dll C# avec delphi
    Par Gruick dans le forum Débuter
    Réponses: 8
    Dernier message: 19/06/2008, 10h23
  4. Comment exécuter une DLL écrite en Delphi avec RunDLL32 ?
    Par Pedro dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 09/01/2008, 19h03
  5. Réponses: 1
    Dernier message: 11/04/2007, 11h45

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