Bonjour,
J'ai besoin d'utiliser une DLL écrite en C++.
Voici la fonction comme déclarée en c++
Mon appel de fonction en Delphi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 //Get version void Version(char *version,int len);
L'assignation semble fonctionner comme l’atteste le message 'fonctionne' mais j'ai ensuite lors de l'utilisation de la fonction un message d'erreur eAccessViolation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 procedure TForm1.Appel_fonction_dllClick(Sender: TObject); var HandleDLL : THandle; Version : procedure (var Version_TXT : pAnsiChar;longueur : integer); stdcall; Version_TXT : pAnsiChar; longueur : integer; begin Version := nil; HandleDLL := LoadLibrary(pWideChar('D:\BAPSI source BOSCH\BAPSI\BAPSI\components\4.01.012\dll\BAPSIDLL.dll')); if HandleDLL = 0 Then Exit; Version := GetProcAddress (HandleDLL, pAnsiChar('?Version@CBAPSIDLL@@QAEXPADH@Z')); if Assigned(Version) then begin ShowMessage('Fonctionne'); Version(Version_TXT,longueur); Edit4.Text := Version_TXT; end; end;
J'ai essayé de l'appeler avec la convention stdcall avec le même résultat.
Merci de votre aide.
Partager