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 .NET Discussion :

[D8] Utilisation dll D7 sous D8


Sujet :

Delphi .NET

  1. #1
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut [D8] Utilisation dll D7 sous D8


    En delphi 7 j'utilisais massivement les pointers et, en général, ça fonctionnait mais en esseyant d'exploiter ce code sur D 8, j'obtient des choses bizarres.

    Voilà, je voudrais donc utiliser une dll écrite en D 7 qui contient cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function AddDataP(InHandle : integer;Name : PChar;data : PChar;Replace : longbool) : longbool;stdcall;
    begin
    ...   
    end;
    sous D 8, j'ai essayé plusieurs méthodes qui ressemblaient à ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function AddDataP(InHandle : integer;Name : PChar;data : PChar;Replace : longbool) : longbool;unsafe;external 'sdsf.dll';
     
          function StrToPChar(InStr : string) : PChar;unsafe;
          begin
            Result := PChar(@InStr);
          end;
     
    ...
    begin
      AddDataP(Handle,StrToPChar('system'),StrToPChar('data.dat'),true);
    ...
    end;
    Mais voilà, dans cette méthode, je crois que seul le 1ere caracètre de chaque PChar est reçu par la dll D 7 ... je dis "je crois" car j'ai essayé une infinité de méthodes qui mon soit fait n'importe quoi, soit une erreur de Marshaling ...

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    de + en + bizarre :
    Avec Delphi 8 j'appelle la fonction déclarée comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function AddDataP(InHandle : integer;Name : String;data : String;Replace : longbool) : longbool;external 'sdsf.dll'; 
     
    //quelque part dans mon code
    AddDataP(Handle,'Test','blablabla',true);
     
    //et ma dll reçoi   (Handle,'T','b',true);
    J'ai donc éssayé de faire donc un appel depuis une assemly C# et d'appeler ensuite l'assembly vers Delphi 8 ce qui donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    //C#
    [DllImport('sdsf.dll')]
    public static extern bool AddDataP(int InHandle,string Name,string Data,bool Replace);
     
    //Delphi 8
    LaClasseC#.AddDataP(Handle,'Test','blablabla',true);
    et là, ça fonctionne parfaitement .

    bien que mon appli D8+assembly C# fonctionnne, ce truc bizzare m'étone quand même ... qu'est-ce qui peut coser ça ?????

  3. #3
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    enfin bon ...

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/05/2009, 10h33
  2. Comment utiliser ma Dll c++ sous c# ?
    Par f1c3l dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 23/12/2008, 15h41
  3. [.NET] utiliser une dll c++ sous excel
    Par ooxoo dans le forum VC++ .NET
    Réponses: 7
    Dernier message: 04/04/2008, 09h43
  4. Utilisation DLL créée sous VB6
    Par Dertron dans le forum Access
    Réponses: 12
    Dernier message: 05/04/2006, 14h54
  5. Utilisation externe d'une Dll créée sous VB6
    Par Dertron dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 03/04/2006, 21h19

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