Pchar => DLL (String manip) => Pchar showmessage
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.
Code:
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; |
// Procedure dans la dLL
Code:
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; |
L'affichage de retour est 'DRES ' avec un symbole de fin de string je pense à la place de l'espace.
Y a t-il mieux à faire ?
merci