Bonjour,

J'ai besoin d'utiliser une DLL écrite en C++.

Voici la fonction comme déclarée en c++
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
//Get version
	void Version(char *version,int len);
Mon appel de fonction en Delphi :
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;
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.

J'ai essayé de l'appeler avec la convention stdcall avec le même résultat.

Merci de votre aide.