Bonjour à tous,

Voilà je tente de faire une application avec un système de plugin et pour pouvoir y connecter facilement n'importe quel style de dll je pensais utiliser la syntaxe suivante à l'interieur des dlls:

Function mafonction(params : Array of Const) : variant

C'est une syntaxe que j'ai trouvé dans un post.

J'ai aussi une procédure qui me permet de charger la dll en question

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
24
 
 
 TMaFonc = Function(params : array of Const) : variant;
 
 
Procedure TMDC_Application_M.Appeler_Dll(Nom_dll, Nom_proc : string; params : array of Const);
var
  Handle : THandle;
  i : integer;
  MaFonction : TMaFonc;
begin
  Handle:=LoadLibrary(Pchar(Nom_dll));     //chargement de la dll
  if Handle <> 0 then
  begin
    try
      //Charge dynamiquement la fonction de la dll
      @MaFonction:=GetProcAddress(Handle,'UneSomme');//PChar(Nom_Proc));
      if @MaFonction <> nil then
        i:=MaFonction(params);
    finally
      FreeLibrary(Handle);
    end;
  end;
end;
Donc déjà ça plante au niveau Procedure TMDC_Application_M.Appeler_Dll(Nom_dll, Nom_proc : string; params : array of Const);
car il ne comprend pas le Array of Const. et dans la procédure ou je rempli mon params je ne peux pas non plus déclarer la variable.

Si je remplace le tout par un Array of variant, l'appel à la fonction, dans la dll, ne marche pas.

Help

merci pour tout