Manipulation pointeur delphi
Bonjour,
je voudrais récupérer un bloc d'octet en memoire. Pour ce faire g un pointeur de structure, un déplacement par rapport au début de la struture et le nombre d'octet a récupérer.
J'ai procéder de la mnière suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
Function GetTAPIStructString(ptrTapistruct:pointer; offset, length :Integer):String;
var
buffer : array of Byte;
begin
If length < 1 Then
Exit; //'handle erroneous input
If offset<>0 Then
begin
setLength(buffer,length);
CopyMemory( buffer, ptr(integer(@ptrTapistruct)+offset) , length);
Result:= string(buffer);
end;
End; |
Ca compile mais le résultat obtenue n'est pas celui attendue.
Est ce que je procède de la bonne manière et ce qui va pas c une mauvaise gestion de la mémoire ou est ce que je fait n'importe quoi :?
Merci d'avance a+
Balises de code ajoutées par Pierre Castelain.
Pensez-y à l'avenir.
Résolu : Manipulation pointeur delphi
Merci c'est cool ça fonctionne sauf qu'il fauf mettre
CopyMemory(buffer, Pointer(integer(ptrTapistruct)+offset) , length);
le buffer[0] passe pas.
Merci en encore