bonjour,
je n'arrive pas a récupérer des strings depuis une de mes dll.
j'ai tout essayé, PChar, ShortString... et je bloque
voici le code de ma dll:
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
25
26
27
28
29
30
31
32
33
34
35
36 library Project1; uses SysUtils, Classes, Windows; {$R *.RES} function getnameuser: string; StdCall; const cnMaxUserNameLen = 254; var sUserName: string; dwUserNameLen: DWORD; begin dwUserNameLen := cnMaxUserNameLen - 1; SetLength(sUserName, cnMaxUserNameLen); GetUserName(PChar(sUserName), dwUserNameLen); SetLength(sUserName, dwUserNameLen); Result := sUserName; end; function messtrg: PChar; StdCall; var str1, str2: string; begin str1 := ('username : ' + getnameuser); str2 := ('salut! '); result := PChar(str1); end; exports getnameuser, messtrg; begin end.
et de mon exe:
j'ai essayé des 15 façons différentes sans succès,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 procedure TForm1.Button1Click(Sender: TObject); Type TMonmesstrg = procedure; Var Hdle : THandle; messtrg: TMonmesstrg; begin Hdle:=LoadLibrary(PChar('C:\test.dll')); //Charge la DLL @messtrg:=GetProcAddress(Hdle,'messtrg'); //Récupère l'adresse de la procedure messtrg; //Appelle la procedure "messtrg" FreeLibrary(Hdle); //Libère la DLL end;
ce que je voudrai c'est récupérer str1 et str2 en appelant messtrg.
merci d'avance
Partager