Ma première dll son programme !

[Résolu]
Signaler
Messages postés
72
Date d'inscription
jeudi 5 janvier 2006
Statut
Membre
Dernière intervention
30 août 2007
-
Messages postés
72
Date d'inscription
jeudi 5 janvier 2006
Statut
Membre
Dernière intervention
30 août 2007
-
Bonjour j'ai un léger soucis avec ma première dll et son programme . En fait tout fonctionne parfaitement sauf à la fermeture du programme ou j'obtiens l emessage suivant dans delphi : "EInvalidPointer" Opération de pointeur incorrect !   

Il semblerai que la dll ne soit pas libérer d'après ce que j'ai pu comprendre mais comment la libérer ?

voici les sources

DLL

library DLL1;

{ Remarque importante concernant la gestion de mémoire de DLL .... }

uses
  ShareMem,
  SysUtils,
  Classes;

{$R *.res}

function Somme(A,B: Integer): Integer; stdcall;
begin
  Result := A + B;
end;

exports
  Somme;

end.

Programme:

unit Unit1;

interface

uses
  ShareMem,Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }

  end;

var
  Form1: TForm1;

implementation

const
  NomDLL = 'DLL1.dll';

  function Somme(A,B: Integer): Integer; stdcall; external NomDLL;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

ShowMessageFmt('%d + %d = %d', [5, 2, Somme(5, 2)]);

end;

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

end.

2 réponses

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
14
Salut,

Je n'ai pas Delphi ici (argl).

Tu n'as pas à décharger la dll toi même.

Si tu vire le sharemem, même erreur ? (Tu en as pas besoin car tu ne fais passer que des entiers).
Messages postés
72
Date d'inscription
jeudi 5 janvier 2006
Statut
Membre
Dernière intervention
30 août 2007

oui , merci j'ai trouvé.

j'ai passer les string en pchar et je n'ai plus l'erreur . j'ai enlevé sharemem aussi .

merci de ta réponse