Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Kritischer Fehler


110022 - Mi 25.02.09 23:58
Titel: Kritischer Fehler
Hallo leute.

Wollte grade das programm starten als diese meldung kam.

Delphi-Quelltext
1:
[Fehler] RLINK32: Out of memory!                    

Was heißt das?

Bitte um schnelle antwort


110022


BenBE - Do 26.02.09 00:11

Beim Linken des Programms stand dem Linker nicht genug Arbeitsspeicher zur Verfügung, oder die einzubindenden Resourcen waren zu groß.


jaenicke - Do 26.02.09 00:11

Da du wie ich sehe Delphi 7 benutzt, bist du wohl auf einen der Fehler der alten Version gestoßen. In neueren Versionen, auch der kostenlosen Turbo Delphi Explorer Version, ist der behoben.

Auftreten tut der, wenn du sehr viele oder sehr große Ressourcen in dem Projekt hast. Das kenne ich auch, bei Turbo Delphi war das dann weg.

Abhilfe schafft hier die rlink32.dll von hier (ich hatte eine andere, die gibts aber nicht irgendwo zum Download):
http://cc.codegear.com/Free.aspx?id=24778
Einfach die im Verzeichnis Bin im Delphiverzeichnis durch die dort mitgelieferte ersetzen. Laut dem was ich hier [http://www.delphipraxis.net/topic87048.html] gelesen habe funktioniert auch die, ausprobiert habe ich das mit dieser DLL nie selbst.

Ob das immer funktioniert, kann ich nicht sagen, ich selbst habe diese Lösung seinerzeit nur kurz benutzt, weil es mit Delphi 2006 (das ist ja Turbo Delphi) ja ohnehin dann eine viel bessere Delphiversion gab.


110022 - Do 26.02.09 00:15

kannst du deine denn nicht kurz hochladen?
Denn die datei, die mir da angeboten wird ist ne Exe mit 8,8MB^^

EDIT: Das klappt nicht
Da kommt ne andere meldung


jaenicke - Do 26.02.09 00:21

Ich habe Delphi 7 nur noch im virtuellen PC und dort ist die DLL nicht ersetzt, ich habe nur noch die Setups. Ich benutze Delphi 7 nur noch zu Testzwecken um Komponenten kompatibel zu halten.
(Und lizenzrechtlich wäre das ja auch nicht ok.)

Ich sehe schon, dass du editiert hast:
Welche Meldung denn?


110022 - Do 26.02.09 00:22

Diese hier

[Fataler Fehler] Interner Fehler: LA30

Hab keine Ahnung was ich tun soll.

Gibts denn ne neue version?
Kostenlose natürlich


jaenicke - Do 26.02.09 00:27

user profile icon110022 hat folgendes geschrieben Zum zitierten Posting springen:
[Fataler Fehler] Interner Fehler: LA30
Dann funktioniert das wohl doch nicht auch mit der DLL, eine andere gibts aber nicht zum Download.

user profile icon110022 hat folgendes geschrieben Zum zitierten Posting springen:
Gibts denn ne neue version?
Kostenlose natürlich
Ja, Turbo Delphi Explorer, das ist praktisch eine Professional, du kannst nur keine (fremden) Komponenten zusätzlich in die IDE installieren (aber natürlich manuell erzeugen), Internet- und Datenbankkomponenten usw. sind aber (anders als bei alten Personal Editions) dabei, genauso wie diverse Hilfen beim Code schreiben.
Mehr dazu und zur Installation gibts hier:
http://www.delphi-library.de/viewtopic.php?p=539975


110022 - Do 26.02.09 00:34

Vielen Dank schonmal, ich werde mich morgen wieder melden.


110022 - Do 26.02.09 14:28

So dann berichte ich mal.

Es klappt alle gut, die Meldung sit auch weg nur habe ich ein Problem

Wenn ich das Programm beende, kommt ein Fehler
im OnClose habe ich diese 6 Einträge

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
install1.free;
install2.free;
beenden1.free;
beenden2.free;
howto1.free;
howto2.free;

Aber da ist irgendwas komisch dran.
Denn wenn ich beende, kommt ne Exception.....

So sieht das Image aus, was das programm beendet

Delphi-Quelltext
1:
2:
mediaplayer1.Stop;
form1.close;


Regan - Do 26.02.09 14:33

user profile icon110022 hat folgendes geschrieben Zum zitierten Posting springen:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
install1.free;
install2.free;
beenden1.free;
beenden2.free;
howto1.free;
howto2.free;

Aber da ist irgendwas komisch dran.
Denn wenn ich beende, kommt ne Exception....

Wie wäre der Vorschlag, wenn du beim Ersten einen Haltepunkt setzt und dann mit F8 dich vorarbeitest, um herauszufinden, wo der Fehler liegt!?


110022 - Do 26.02.09 14:43

Hab ich schon, es muss an den 6 Einträgen liegen, denn wenn ich die rausnehme, klappts ohne Fehler^^


jaenicke - Do 26.02.09 14:52

user profile icon110022 hat folgendes geschrieben Zum zitierten Posting springen:
Hab ich schon, es muss an den 6 Einträgen liegen, denn wenn ich die rausnehme, klappts ohne Fehler^^
Das heißt nicht, dass kin Fehler auftritt, sondern nur, dass keiner entdeckt wird. ;-)

Bei welchem der Einträge tritt der Fehler denn auf, wenn du wie user profile iconRegan gesagt hatte debuggst? Oder kommt der Fehler erst danach?


110022 - Do 26.02.09 15:15

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile icon110022 hat folgendes geschrieben Zum zitierten Posting springen:
Hab ich schon, es muss an den 6 Einträgen liegen, denn wenn ich die rausnehme, klappts ohne Fehler^^
Das heißt nicht, dass kin Fehler auftritt, sondern nur, dass keiner entdeckt wird. ;-)

Bei welchem der Einträge tritt der Fehler denn auf, wenn du wie user profile iconRegan gesagt hatte debuggst? Oder kommt der Fehler erst danach?

Direkt beim ersten kommt das.
Oder muss hier nochwas hin?
Der Block sieht so aus

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
install1.free;
install2.free;
beenden1.free;
beenden2.free;
howto1.free;
howto2.free;
end;


jaenicke - Do 26.02.09 15:28

Das gehört auch nicht in OnClose sondern in OnDestroy. OnClose wird beim Schließen aufgerufen, OnDestroy beim Entfernen aus dem Speicher.
Erzeugen tust du die Objekte ja auch nicht in OnShow sondern in OnCreate.


110022 - Do 26.02.09 15:29

OH!

Wir das OnDestroy denn immer ausfgeführt?
Wenn man beendet?


Delete - Do 26.02.09 15:32

OnDestroy wird einmalig beim Entfernen des Formulars aus dem Hauptspeicher ausgeführt (beim Beenden der Anwendung oder manuellen Freigeben des Formulars), OnClose hingegen jedesmal, wenn Du das Formular schließt.


jaenicke - Do 26.02.09 15:36

Die Reihenfolge ist:


110022 - Do 26.02.09 15:36

Jap, im OnDestroy klappts fehlerfrei^^

danke