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 :
La dll se charge sans problème sous Delphi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 __declspec (dllexport) int Addition (int a , int b) { return (a+b); }
La fonction Addition est bien reconnue et utilisée puisque au code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
j'obtiens la bonne réponse 27; par contre je reçois un message de violation d'accès.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 procedure TForm1.BoutonClick(Sender: TObject); var m :integer; begin m:=Addition(6,21); showmessage(intToStr(m)); end;
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
Partager