Bonjour
Je passe un Pchar en paramètre à une fonction d'une DLL qui doit modifier le contenu du string.
Le contenu doit ensuite être affiché par la procedure appelante.
// Procedure dans la 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 Procedure Appel(); Mot : String; Pmot : Pchar; begin mot:=' '; {alocate memory} GetMem(pword,Length(mot)) ; // takes a pointer pword := PChar(mot); ChangeMot(Pword) ShowMessage(string(PWord)); {free the memory} FreeMem(pword) ; end;
L'affichage de retour est 'DRES ' avec un symbole de fin de string je pense à la place de l'espace.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Procedure ChangeMot(var p : Pchar); var NouveauMot : String; begin NouveauMot := 'DRESSER'; Move(NouveauMot,p,Length(NouveauMot)); end;
Y a t-il mieux à faire ?
merci
Partager