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++Builder Discussion :

Dll compilée avec Builder 6, executable avec Delphi 7 - Pb d'Application


Sujet :

C++Builder

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Points : 179
    Points
    179
    Par défaut Dll compilée avec Builder 6, executable avec Delphi 7 - Pb d'Application
    Bonsoir à tous,

    Je me retrouve face un problème concernant l'appel d'une fonction d'une dll compilée avec Builder 6, par un executable compilé avec Delphi 7.

    Les options de compilations sont identiques (alignement, etc...).

    La fonction appelée est une méthode minimale, du genre:

    __declspec(dllexport) void __stdcall TestProc(void *hApp){
    Application->Handle = hApp;
    //...
    ShowMessage("yop !");
    //...
    }
    Le problème, c'est qu'en appelant cette fonction à partir d'un executable compilé avec Delphi 7, je n'ai plus accés aux informations concernant mon Application principale dans ma Dll (d'où la présence de la ligne 'Application->Handle = hApp;').
    Alors que lorsque celle-ci est appelé par un executable compilé avec Builder 6, l'Application de ma Dll est bien mon Application principale.

    D'où cela vient-il? Cela est dû à une erreur de ma part, ou tout simplement à un problème d'incompatibilité entre Builder et Delphi?
    Je demande cela, parce que j'aimerai bien ne pas être condamné à envoyer les informations de l'application principale en argument de ma procedure.

    Merci d'avance

    Cordialement

    Benjamin

  2. #2
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonsoir,

    un problème d'incompatibilité entre Builder et Delphi?
    Personnellement, cela m'étonnerais ... mais bon.

    Je suis un peu surpris par ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Application->Handle = hApp;
    Je ne sais pas vraiment ce que tu as a faire avec l'application et/ou les fiches (la fiche principale de l'appli ?) .... détails possibles ?

    @+
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Points : 179
    Points
    179
    Par défaut
    Bonsoir Sunchaser,

    Et merci pour ton intérêt à mon problème.

    Cela correspond à n'afficher que la fenêtre principale de l'application dans la barre des tâches.

    La fiche principale est déclarée dans l'exécutable, et est rattachée à l'Application principale.

    D'autres fiches sont déclarées dans ma dll (elles correspondent à des fenêtre de configuration, d'outils, etc...).

    Lorsque que l'exécutable est écrit en C++, et compilé avec Builder 6, l'Application de ma dll est la même que celle de mon exécutable.
    Par contre, lorsque l'exécutable est écrit en Pascal, les deux Applications sont différentes.

    Bonne soirée,

    Benjamin

  4. #4
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    bonjour
    le problème vient peut-être de la manière d'on les paramètres sont transmis
    (__fastcall ,__Stdcall)

    C++ builder travaille indifféremment avec les deux et delphi non

    pour tester ceci crée par exemple dans ta DLL(c++builder) une nouvelle fonction qui retourne la valeur transmise en paramètre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int TestDll(int a)
    {
    return a;
    }
    Appelle cette fonction depuis ton application(delphi) et vérifie que la valeur transmise et égale à la valeur du paramètre

    cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

Discussions similaires

  1. compiler des composants delphi avec builder c++
    Par mgkninos dans le forum Composants VCL
    Réponses: 1
    Dernier message: 21/05/2010, 17h53
  2. Compiler des composants delphi avec builder c++
    Par mgkninos dans le forum C++Builder
    Réponses: 9
    Dernier message: 18/05/2010, 20h31
  3. mon premier pas avec builder c++ problem avec une string grid
    Par chahinerue6 dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/01/2010, 21h42
  4. Compiler en ligne de commande avec Builder 2007
    Par TsCyrille dans le forum C++Builder
    Réponses: 3
    Dernier message: 18/06/2008, 14h35
  5. Executable avec builder c++5
    Par nadja2000 dans le forum C++Builder
    Réponses: 1
    Dernier message: 06/09/2007, 12h50

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