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 :

Utiliser une dll delphi en C#


Sujet :

C#

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Avril 2012
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Utiliser une dll delphi en C#
    Bonjour,

    J'ai besoin d'utiliser une dll écrite en delphi 7 (que je ne peux pas modifier).
    Je connais le prototypage des fonctions en delphi, mais je n'arrive pas à appeler les différentes fonctions.

    Prototypage de la fonction delphi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    procedure p_PROC(var a,b,c,d,e:T_Single_Ptr);
    Côté C# je ne sais pas comment déclarer des pointeurs vers des réels sur 4 (T_single_ptr).

    J'ai cherché du côté de DllImport mais je patauge pour l'instant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [DllImport("DELPHI.dll", CharSet = CharSet.Ansi, EntryPoint = "p_PROC")]
            public static extern void p_PROC(? a, ? b, ? c, ? d, ? e);

    Auriez-vous une idée de comment faire pour utiliser une dll delphi pour appeler des fonctions de cette dll ?

    Merci d'avance pour votre aide.

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Points : 766
    Points
    766
    Par défaut
    J'utilise une DLL C++ dans un projet DotNet 4.0, voici des bouts de code qui vont surement t'aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    [DllImport("kernel32", SetLastError = true, CharSet = CharSet.Unicode)]
    static extern IntPtr LoadLibrary(string lpFileName);
     
    [DllImport("kernel32", CharSet = CharSet.Ansi, ExactSpelling = true, SetLastError = true)]
    static extern UIntPtr GetProcAddress(IntPtr hModule, string procName);
     
    internal static class UnsafeNativeMethods
    {
    	[DllImport("kernel32", CharSet = CharSet.Ansi, ExactSpelling = true, SetLastError = true)]
    	internal static extern IntPtr GetProcAddress(IntPtr hModule, string procName);
    }
     
    [UnmanagedFunctionPointer(CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
    internal delegate int MaMethodeInvoker(string pProfile, string pPW, string pIniFile, string pInputFile, string pOutputFile, [MarshalAs(UnmanagedType.LPStr)] StringBuilder ErrBuff, int BuffLen);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    IntPtr hmod = LoadLibrary(@"C:\blabla\Gazou.dll");
     
    if (hmod == (IntPtr)0)
    	throw new ApplicationException("Impossible de charger la DLL");
     
    IntPtr fptr = UnsafeNativeMethods.GetProcAddress(hmod, "MaMethode");
    MaMethodeInvoker maMethode = (MaMethodeInvoker)Marshal.GetDelegateForFunctionPointer(fptr, typeof(MaMethodeInvoker));
     
    string pInputFile = @"C:\toto.txt"
     
    int buflen = 500;
     
    int result = maMethode(epf, password, enTrustIni, pInputFile, pOutputFile, ErrBuff, buflen);

Discussions similaires

  1. Utiliser une DLL Delphi avec C#
    Par h8ciz dans le forum Windows Forms
    Réponses: 3
    Dernier message: 27/09/2007, 16h46
  2. Utiliser une DLL C# a partir de delphi
    Par ghazghkull dans le forum Delphi
    Réponses: 11
    Dernier message: 23/04/2007, 16h40
  3. utiliser une DLL C++ dans un Exe Delphi
    Par rudi0 dans le forum Delphi
    Réponses: 1
    Dernier message: 13/12/2006, 22h49
  4. Utilisation d'une DLL Delphi en ASP
    Par [DreaMs] dans le forum ASP
    Réponses: 1
    Dernier message: 08/11/2006, 00h11
  5. Réponses: 1
    Dernier message: 18/07/2006, 16h44

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