Entwickler-Ecke
Sonstiges (Delphi) - VCL-LeakFix zu Delphi
Flamefire - Mi 24.09.08 15:20
Titel: VCL-LeakFix zu Delphi
Ich habe dieses hier gefunden:
http://cc.codegear.com/Item.aspx?id=16380
Da ist ein fix für die Classes.pas den ich brauche (vermutlich)
Nur das Problem ist: Wie compiliere ich die Classes.pas neu?
Habs mit dem Package "RTL" probiert (nachdem ichs unter nem andren Namen speichern musste) aber danach meckert er mir rum, dass "unit forms mit unterschiedlicher version von tclasses.persistent kompiliert wurde"
wie kann ich das also machen?
AXMD - Mi 24.09.08 15:27
Nachdem viele andere Units von Classes.pas abhängig sind musst du alle neu kompilieren. Ersetzte deine Classes.pas (im Ordner mit dem Delphi beiligenden Quelltext) und kompilier das RTL-Package neu.
AXMD
alzaimar - Mi 24.09.08 15:30
Du musst alles neu kompilieren und die DCU dann in den Lib-Ordner packen.
Ist das nicht beim letzten SP von D6 dabei gewesen?
Flamefire - Mi 24.09.08 15:34
ok und wie kann ich das rtlpackage neu kompilieren?
hab das noch nie gemacht und wenn chs machen will sagt der mir ich muss es unter nem andren namen speichern...
delfiphan - Do 25.09.08 20:20
Du hast Delphi 7. Dort soll der Fehler aber schon behoben sein.
AndyB - Do 25.09.08 20:52
Der Fehler ist sogar noch in Delphi 2009 drinnen.
Es gibt aber in CodeCentral auch einen Bugfix der es nicht erfordert, die Classes.pas neu zu kompilieren.
http://cc.codegear.com/Item/25104
Flamefire - Do 25.09.08 20:55
ja gut es gibt auch eine, die die funktion hookt usw. ich würde es aber ebn gerne in alle projekten dabei haben, ohne immer ne unit einbinden zu müssen.
warum ist es so schwer die rtl und vcl neu zu kompilieren?
der emckert bei der vcl wegen fehlender *.o dateien...
jaenicke - Do 25.09.08 21:06
Du könntest auch non-VCL arbeiten, und deine Formulare so erstellen, dann würde sich das Problem gar nicht erst stellen, bei Shellerweiterungen u.ä. bietet sich das ja ohnehin an.
Und die meisten deiner Projekte werden den Fix ja ohnehin nicht benötigen, bei den wenigen wäre ja der Hook vielleicht auch möglich.
AndyB - Do 25.09.08 21:32
Flamefire hat folgendes geschrieben: |
| warum ist es so schwer die rtl und vcl neu zu kompilieren? |
Weil CodeGear es dir durch die Lizenz verbietet eine eigene RTL70.BPL zu kompilieren. Wenn dann musst du einen anderen Dateinamen wählen. Dann funktionieren aber die ganzen anderen BPLs nicht mehr. Die Einzel-Units kann man kompilieren, man darf halt nur nichts im Interface-Abschnitt ändern, da sonst alle davon abhängigen Units auch neu erstellt werden müssen.
Bernhard Geyer - Fr 26.09.08 08:24
AndyB hat folgendes geschrieben: |
Flamefire hat folgendes geschrieben: | | warum ist es so schwer die rtl und vcl neu zu kompilieren? |
Weil CodeGear es dir durch die Lizenz verbietet eine eigene RTL70.BPL zu kompilieren. ... Die Einzel-Units kann man kompilieren, man darf halt nur nichts im Interface-Abschnitt ändern, da sonst alle davon abhängigen Units auch neu erstellt werden müssen. |
Und das wird auch der Grund sein das man es auch physikalisch nicht ermöglicht. Was passiert wohl wenn jeder seine Codegear-BPL's nach gutdüngen patched? Eine DLL-Hölle da Entwickler x denke man braucht das ja nicht, Entwickler y mal das Interface von Klass A ändert, ...
Flamefire - Fr 26.09.08 11:03
ok gut...aber der hook zuviel sollte nicht schaden. kann man es also wenigstens so hinbiegen, dass der hook standartmäßig mit eingebunden wird?
jaenicke - Fr 26.09.08 12:54
Wenn du deine DLLs mit dem entsprechenden Experten erstellst, könnte man den vielleicht einfach verändern, dass die Unit automatisch mit in die uses kommt, ich muss mal schauen ob das einfach geht.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!