1 pièce(s) jointe(s)
utiliser une DLL C++ dans un Exe Delphi
Bonjour, j'essaie d'utiliser une dll en C++ dans un projet Delphi.
La dll est basique et elle fonctionne bien dans un programme en C++.
Il n'y a qu'une fonction :
Code:
1 2 3 4
| __declspec (dllexport) int Addition (int a , int b)
{
return (a+b);
} |
La dll se charge sans problème sous Delphi :
Code:
1 2 3 4 5 6 7 8 9 10
|
Addition:function (a:integer;b:integer):integer; stdcall;
procedure TForm1.FormCreate(Sender: TObject);
begin
Convert:=LoadLibrary('MADLL.dll');
if Convert=0 then raise Exception.Create('La DLL de convertion est introuvable');
@Addition:=GetProcAddress(Convert,'Addition');
if @Addition=nil then raise Exception.Create('La fonction Addition est introuvable');
end; |
La fonction Addition est bien reconnue et utilisée puisque au code suivant :
Code:
1 2 3 4 5 6
| procedure TForm1.BoutonClick(Sender: TObject);
var m :integer;
begin
m:=Addition(6,21);
showmessage(intToStr(m));
end; |
j'obtiens la bonne réponse 27; par contre je reçois un message de violation d'accès.
Le fait de supprimer le showmessage n'y change rien.
J'aimerais bien comprendre ce qui pose problème, mais pour l'heure je suis dans le brouillard.
Merci de me faire part de vos idées.
Rudi0