AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi [Erledigt] Preview Handler in VCL erzeugt MemoryLeak
Thema durchsuchen
Ansicht
Themen-Optionen

[Erledigt] Preview Handler in VCL erzeugt MemoryLeak

Ein Thema von Aviator · begonnen am 16. Feb 2014 · letzter Beitrag vom 31. Mai 2015
Antwort Antwort
Seite 1 von 2  1 2      
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: Preview Handler in VCL erzeugt MemoryLeak - Lösung gesucht

  Alt 16. Feb 2014, 16:35
@Jeanicke: Habe das Problem denke ich mit deinen Stichpunkten lösen können, indem ich 1. deinen Teil mit dem Registry Code ersetzt habe und 2. im OnDestroy die Zeilen
Delphi-Quellcode:
if FFileStream<>nil then
  FFileStream.Free;
entfernt habe. Ob das allerdings so richtig ist, weiß ich nicht. Wäre nett, wenn du mir sagen könntest ob das so stimmt. Der Memory Leak kommt zumindest nicht mehr.

Ein kleines weiteres Problem (was allerdings nicht so super tragisch ist aber ich gerne gelöst hätte) ist, dass das Programm beim Beenden noch ca. 10 Sekunden lang offen bleibt. Kennt jemand den Grund dafür und wie man das möglicherweise beheben kann, oder ist es einfach so (was ich mit nicht vorstellen kann) ?

Zitat:
Das passiert auch mit der Demo schon. Aber ist wohl zu viel verlangt das auszuprobieren.
Wenn du damit mich meintest: Oben schrieb ich bereits, dass ich das Beispielprojekt geladen und getestet habe und ich auch deshalb auf den Fehler aufmerksam geworden bin.

Geändert von Aviator (16. Feb 2014 um 16:39 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.961 Beiträge
 
Delphi 12 Athens
 
#2

AW: Preview Handler in VCL erzeugt MemoryLeak - Lösung gesucht

  Alt 16. Feb 2014, 17:50
Zitat:
Das passiert auch mit der Demo schon. Aber ist wohl zu viel verlangt das auszuprobieren.
Wenn du damit mich meintest: Oben schrieb ich bereits, dass ich das Beispielprojekt geladen und getestet habe und ich auch deshalb auf den Fehler aufmerksam geworden bin.
Nein, ich meinte Sir Rufo, da ich davon ausgegangen bin, dass er den Link gesehen hatte, aber trotzdem nicht erst einmal dort nachgeschaut und ausprobiert hat. Das kommt hier in der DP in letzter Zeit leider häufiger vor, dass ähnliche Kurzbeiträge druntergehauen werden obwohl im Beitrag eigentlich alles drin ist, es nachzuvollziehen aber vielleicht 1-2 Minuten mehr erfordert hätte.
(Hauptsache Beitragszähler erhöhen?)

@Jeanicke: Habe das Problem denke ich mit deinen Stichpunkten lösen können, indem ich 1. deinen Teil mit dem Registry Code ersetzt habe und 2. im OnDestroy die Zeilen
Im LoadPreviewHandler muss die Freigabe des Streams auch noch raus.

Bei mir passiert das mit der Wartezeit nicht mehr, das hatte ich anfangs aber auch. Ich glaube das liegt am eingebetten Programm. Das müsste man vielleicht noch genauer untersuchen. Da das ganze über COM läuft, vermute ich aber, dass da noch auf etwas gewartet wird.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Preview Handler in VCL erzeugt MemoryLeak - Lösung gesucht

  Alt 16. Feb 2014, 18:12
Hi und danke für die Antwort. Die Dauer des Beendens ist zwar dennoch vorhanden, aber es kommen keine Fehler (Memory Leaks) mehr. Leider kenne ich mich mit COM nicht aus und kann daher auch nicht nachvollziehen, wieso es so lange dauert bis das Programm beendet ist. Aber dennoch danke für einen möglichen Hinweis an was es liegen könnte. Beim Debuggen wird auf jeden Fall im OnDestroy beider Klassen sehr lange gewartet. Leider kann ich nirgends irgendwie tiefer irgendwo debuggen um den Fehler zu finden.
Aber dieses Problem will ich mal etwas nach hinten schieben, es sei denn es kennt jemand eine Lösung bzw. einen Anhaltspunkt an was es liegen könnte.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.961 Beiträge
 
Delphi 12 Athens
 
#4

AW: Preview Handler in VCL erzeugt MemoryLeak - Lösung gesucht

  Alt 16. Feb 2014, 18:30
Was ich noch vergessen habe:
Statt OpenKey sollte in GetPreviewHandlerCLSID noch OpenKeyReadOnly rein, damit es auch ohne Adminrechte funktioniert.

Wenn es beim Beenden hängt, hängt es bei mir in der Preview-DLL beim Unload wie man im Stacktrace ja sieht:
UnloadStack.png
Insofern wird sich da wohl nicht viel machen lassen.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Preview Handler in VCL erzeugt MemoryLeak - Lösung gesucht

  Alt 16. Feb 2014, 18:34
Super. Danke das du nach einer Lösung gesucht hast.

Die Zeile habe ich von mir aus schon mit OpenKeyReadOnly ersetzt. Trotzdem danke für den Hinweis.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#6

AW: Preview Handler in VCL erzeugt MemoryLeak - Lösung gesucht

  Alt 17. Feb 2014, 00:27
Nein, ich meinte Sir Rufo, da ich davon ausgegangen bin, dass er den Link gesehen hatte, aber trotzdem nicht erst einmal dort nachgeschaut und ausprobiert hat. Das kommt hier in der DP in letzter Zeit leider häufiger vor, dass ähnliche Kurzbeiträge druntergehauen werden obwohl im Beitrag eigentlich alles drin ist, es nachzuvollziehen aber vielleicht 1-2 Minuten mehr erfordert hätte.
(Hauptsache Beitragszähler erhöhen?)
Na, wenigstens haben wir hier ein echtes Soziophob, aka 'sas Jänicke', das wohl sonst nichts zu tun hat, und die 1-2 Minuten verschwendet, um einem lieblos dahingerotzen Link zu folgen, sich die Quellen runterzuladen, die Fehler zu finden und zu posten und das in gerade 1-2 Minuten.

Respekt Wastl. 1-2 Minuten könnten dezent untertrieben sein. Außer, Du hast den Fluxkompensator und Dimensionsfalten.

Frage: Wieso musst Du auf anderen herumtrampeln, um dich selbst zu erhöhen? Was fehlt Dir? Ach, ich weiß: Fängt mit 'S' an und hört mit 'wuststein' auf. Dazwischen ist noch ein 'elbstbe' Und: Ja, es ist nicht das erste mal, daß Du so unangenehm auffällst..
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.961 Beiträge
 
Delphi 12 Athens
 
#7

AW: Preview Handler in VCL erzeugt MemoryLeak - Lösung gesucht

  Alt 17. Feb 2014, 05:45
1-2 Minuten könnten dezent untertrieben sein. Außer, Du hast den Fluxkompensator und Dimensionsfalten.
In ca. 1 Minute hatte ich gesehen, dass die Demo auch dieses Problem hat. Da ist ja auch nix weiter dabei.

Bis ich den Fehler an sich gesehen hatte waren es noch einmal 5-10 Minuten, aber davon hatte ich ja auch nicht gesprochen.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.875 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: [Erledigt] Preview Handler in VCL erzeugt MemoryLeak

  Alt 17. Feb 2014, 06:35
Zitat:
Frage: Wieso musst Du auf anderen herumtrampeln, um dich selbst zu erhöhen? Was fehlt Dir? Ach, ich weiß: Fängt mit 'S' an und hört mit 'wuststein' auf. Dazwischen ist noch ein 'elbstbe' Und: Ja, es ist nicht das erste mal, daß Du so unangenehm auffällst..
Diese Frage solltest Du Dir auch mal stellen.
Markus Kinzler
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Preview Handler in VCL erzeugt MemoryLeak - Lösung gesucht

  Alt 17. Feb 2014, 07:32
Frage: Wieso musst Du auf anderen herumtrampeln, um dich selbst zu erhöhen? Was fehlt Dir? Ach, ich weiß: Fängt mit 'S' an und hört mit 'wuststein' auf. Dazwischen ist noch ein 'elbstbe' Und: Ja, es ist nicht das erste mal, daß Du so unangenehm auffällst..
Da hatte wohl jemand einen sehr schlechten Abend.
Und es ist auch keineswegs das erste mal, dass Du mit solchen Beiträgen auffällst.

Ich wiederhole Triviales: Es steht jedem frei, auf ein Thema auch mal nicht zu antworten - insbesondere dann, wenn man nichts Konstruktives beizutragen hat.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von fs999
fs999

Registriert seit: 4. Dez 2006
Ort: Luxembourg
46 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: [Erledigt] Preview Handler in VCL erzeugt MemoryLeak

  Alt 10. Mär 2014, 15:17
Die Variabel LIStream wird nicht genilt...

Nach
LInitializeWithStream.Initialize(LIStream, STGM_READ); ,
einfach
LIStream := nil; dahinter.

Ich habe aber noch ein Problem, mit BDS 2006 funktioniert es überhaupt nicht, nach eine Minute warten : EOleSystemError : Unspecified Error.
Und noch schlimmer wenn ich das Programm ohne Delphi starte, bekomme ich nach 5 Sekunden die Windowsmeldung dass das Programm abgestürzt ist...

Habe die fehlende Units PropSys and StructuredQueryCondition in das Appliverzeichnis kopiert und IPreviewInterface mit ein paar Konstanten eingefügt.

Der Fehler ist auf diese Line in LoadPreviewHandler : FPreviewHandler := CreateComObject(LPreviewGUID) as IPreviewHandler;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz