Hallo zusammen,
ich habe eine "uralte" Funktion von D XE übersetzen lassen und bin mit der Meldung "Struktur >2GB" belohnt worden.
Ich könnte jetzt einfach ein paar Byte abzwacken, aber "richtig" wäre diese Lösung nicht.
Könnt Ihr mir einen (oder mehrere Tips geben wie ich das Problem "ordentlich" lösen kann?
Delphi-Quellcode:
procedure copyStr2Ara(const ins:string;pa:pointer;lange:cardinal);
type
ta = array [0..maxint-1] of char;
var
sizeofa:cardinal;
tocopy :cardinal;
begin
sizeofa:=lange*sizeof(char);
if sizeofa>0 then begin
tocopy:=sizeof(char)*length(ins);
if tocopy<=sizeofa then begin
if tocopy>0 then
move(ins[1],ta(pa^)[0],tocopy);
if tocopy<sizeofa then fillchar(ta(pa^)[tocopy],sizeofa-tocopy,' ');
end
else
move(ins[1],ta(pa^)[0],sizeofa);
end;
end;
(gerade ist mir aufgefallen, daß das füllen mit Blanks nicht unicode-tauglich ist, bitte ignoriert das)Gruß
k-H