En delphi 7 j'utilisais massivement les pointers et, en général, ça fonctionnait mais en esseyant d'exploiter ce code sur D 8, j'obtient des choses bizarres.
Voilà, je voudrais donc utiliser une dll écrite en D 7 qui contient cette fonction
sous D 8, j'ai essayé plusieurs méthodes qui ressemblaient à ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 function AddDataP(InHandle : integer;Name : PChar;data : PChar;Replace : longbool) : longbool;stdcall; begin ... end;
Mais voilà, dans cette méthode, je crois que seul le 1ere caracètre de chaque PChar est reçu par la dll D 7 ... je dis "je crois" car j'ai essayé une infinité de méthodes qui mon soit fait n'importe quoi, soit une erreur de Marshaling ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function AddDataP(InHandle : integer;Name : PChar;data : PChar;Replace : longbool) : longbool;unsafe;external 'sdsf.dll'; function StrToPChar(InStr : string) : PChar;unsafe; begin Result := PChar(@InStr); end; ... begin AddDataP(Handle,StrToPChar('system'),StrToPChar('data.dat'),true); ... end;
Merci d'avance
Partager