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: Le nom de la fonction exportée est précédé de "_&a


Sujet :

C++Builder

  1. #1
    Membre averti Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Points : 443
    Points
    443
    Par défaut DLL: Le nom de la fonction exportée est précédé de "_&a
    Bonjour,

    J'ai fait une dll qui exporte une fonction. Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    extern "C" _export void test(int Value);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void test(int Value)
    {
      ShowMessage(IntToStr(Value));
    }
    Dans mon application, je dois faire précéder le caractère souligné à la fonction appellée, sinon ça ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test =(T_Test) GetProcAddress(DLLHandle,"_test");
    ==> COMMENT ENLEVER CE CARACTERE ?

    MERCI
    Franck

    Balises [Code] rajoutées par henderson.

  2. #2
    Membre expérimenté Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 887
    Points : 1 531
    Points
    1 531
    Par défaut
    Deux solutions pour supprimer le "_":

    1) Recompile ta DLL en supprimant l'option "Préfixer avec des soulignés" ("Options du projet" -> "Options avancés du compilateur").

    2) Met la convention d'appel de ta fonction en pascal

    Mais attention, ça ne veut pas dire que ça va marcher. Si tu appelle une fonction avec une mauvaise convention d'appel, tu n'aura qu'un superbe plantage.

  3. #3
    Membre averti Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Points : 443
    Points
    443
    Par défaut
    J'ai retenu ta première solution, ça marche !!

    merci !!!!
    Je vais pouvoir continuer mon développement.

    Franck

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD9] Fonction n'est pas trouvée dans le fichier DLL
    Par malik_ne dans le forum WinDev
    Réponses: 3
    Dernier message: 12/03/2010, 11h57
  2. Réponses: 4
    Dernier message: 27/02/2009, 13h24
  3. Réponses: 4
    Dernier message: 08/09/2008, 17h03
  4. Fonctions exportées (DEF) mais absentes dans la DLL
    Par me_myself dans le forum Visual C++
    Réponses: 3
    Dernier message: 17/12/2007, 09h28
  5. Export DLL et noms des points d'entrée
    Par Dozer dans le forum MFC
    Réponses: 5
    Dernier message: 03/06/2005, 09h49

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