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
Donc déjà ça plante au niveau Procedure TMDC_Application_M.Appeler_Dll(Nom_dll, Nom_proc : string; params : array of Const);
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;
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
Partager