Hi,
ich schreibe grade eine Bibliothek in FreePascal. Bisher habe ich immer alle von der Anwendung übergebenen Parameter - falls sie Pointer benutzen - in der Bibliothek freigegeben. Das hat auch geklappt. Aber eigentlich benutzen ja die Anwendung und die Bibliothek nicht den gleichen Speicher. Entstehen dabei Memory Leaks? Und wie kann die Bibliothek überhaupt Speicher von der Host App freigeben?
Als Beispiel:
Bibliothek:
Delphi-Quellcode:
procedure Test(a: PAnsiChar);
begin
// Mache was mit Parameter
StrDispose(a);
end;
// ...
exports
Test;
Host App:
Delphi-Quellcode:
var str: PAnsiChar;
begin
// Erstelle PAnsiChar
str := StrNew('Hallo!');
Test(str);
end;