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

 Delphi Discussion :

Appel d'une DLL écrite en C# en Delphi


Sujet :

Delphi

  1. #1
    Candidat au Club
    Femme Profil pro
    Consultant fonctionnel
    Inscrit en
    Juin 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Juin 2012
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Appel d'une DLL écrite en C# en Delphi
    Bonjour a tous,

    Comment fait on pour appeler une DLL (et ses fonctions) écrite en C# en delphi?

    J'ai essayé le code qui permet d'appeler une DLL C++ en delphi mais ça ne marche pas à savoir :
    (PS :ce code marche tres bien pour mes DLL ecrites en c++):

    Déclaration du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tmafonction = procedure(x, y : short); stdcall;
    Appel de la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    procedure Test.CBTestClick(Sender: TObject);
    var
      mafonction : Tmafonction;
    begin
      maDll := lectr.ChargeDll('C:\maDll.dll');
      if maDll > 0 then
      begin
        try
          MessageDlg('DLL trouvée et chargée', mtInformation, [mbOK], 0);
          @mafonction  := GetProcAddress(maDll, 'nomdemafonction');
          MessageDlg('mafonction = ' + PChar(@mafonction) , mtInformation, [mbOK], 0);
          if @mafonctione <> nil then
          begin
            MessageDlg('mafonction trouvée', mtInformation, [mbOK], 0);
          end
          else
          begin
            MessageDlg('mafonction non trouvée', mtInformation, [mbOK], 0);
          end;
        finally
          lectr.LibereDll(maDll);
        end;
        end;
    end;

    Merci de votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 097
    Points : 41 087
    Points
    41 087
    Billets dans le blog
    62

  3. #3
    Candidat au Club
    Femme Profil pro
    Consultant fonctionnel
    Inscrit en
    Juin 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Juin 2012
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Merci, j'ai déja regardé dans la FAQ mais je ne trouve pas de réponse à ma question ...

    En fait, je voulais savoir si le code utilisé pour l'appel d'une DLL developpé en C# en Delphi est différent de celui qu'on utilise pour appeler une DLL developpé en C++, car actuellement, j'arrive à appeller les fonctions d'une dll C++ mais pas celles d'une dll C# ...


    Merci pour votre aide.

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    tu ne peux pas invoquer une fonction C# depuis une application Win32 comme celles développées sous Delphi (ou C++).

    Mais tu peux publier un objet .Net sous forme d'objet COM (je ne sais pas comment) et le lire comme tel sous Delphi.

  5. #5
    Candidat au Club
    Femme Profil pro
    Consultant fonctionnel
    Inscrit en
    Juin 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Juin 2012
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    ok, merci pour votre réponse .

    Cordialement.

  6. #6
    Membre émérite
    Avatar de Thierry Laborde
    Homme Profil pro
    N/A
    Inscrit en
    Avril 2002
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : N/A

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 391
    Points : 2 529
    Points
    2 529
    Par défaut
    Bonjour,

    Pour info, pour pouvoir appeler du .NET à partir du Delphi directement il existe 2 outils qui permettent de faire cela :

    http://www.atozed.com/CrossTalk/index.EN.aspx

    http://www.remobjects.com/hydra/

Discussions similaires

  1. Utiliser une DLL écrite en C++ dans delphi
    Par totof41 dans le forum Langage
    Réponses: 3
    Dernier message: 07/05/2014, 08h39
  2. Réponses: 19
    Dernier message: 24/03/2014, 08h35
  3. Réponses: 1
    Dernier message: 07/01/2010, 16h16
  4. Appeler une Dll écrite en .NET avec Forms
    Par titan_33 dans le forum Forms
    Réponses: 0
    Dernier message: 22/09/2008, 17h55
  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