Bonjour,

J'ai développé une DLL en vb avec 1 fonction comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Function GetMasse(Ext As String) As String
  GetMasse = "OK"
End Function
Et je veux appeler cette fonction depuis mon programme Deplhi et je fais comme ça :

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
18
19
20
21
22
23
procedure TForm1.Button1Click(Sender: TObject);
var
   msg: string;
   HandleDLL: THandle;
   GetMasse : function (Ext: Variant): Variant;  stdcall;
begin
   GetMasse := nil;
   //Chargement de la DLL
   HandleDLL := LoadLibrary(pAnsiChar('DLLSample.dll'));
 
   //Si la DLL n'est pas chargée on ne continue pas
   if HandleDLL = 0 then Exit;
 
   //Récupération de l'adresse de la fonction nommée 'Somme'
   GetMasse := GetProcAddress(HandleDLL, pAnsiChar('GetMasse'));
 
   //Appel de la fonction si on a bien récupéré son adresse
   if Assigned(Fonction) then
       MessageDlg('Youpiiiiii', mtWarning, [mbOK], 0);
 
   msg := GetMasse('.ASM');
   MessageDlg(msg, mtWarning, [mbOK], 0);
end;
Ma fonction VB est bien exportée ( j'ai verfiié avec tdump, elle se charge bien ( j'ai mon MessageDlg qui apparait ) mais dés que je l'appelle, j'ai une violation d'accés dans le module msvbvm60.dll ...

Quelqu'un aurait-il une idée ? Merci d'avance