AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Record New/Dispose resultiert in MemoryLeaks
Thema durchsuchen
Ansicht
Themen-Optionen

Record New/Dispose resultiert in MemoryLeaks

Ein Thema von Glados · begonnen am 7. Nov 2017 · letzter Beitrag vom 8. Nov 2017
 
Glados
(Gast)

n/a Beiträge
 
#1

Record New/Dispose resultiert in MemoryLeaks

  Alt 7. Nov 2017, 21:34
Ich glaube ich habe irgendwo einen Fehler, finde ihn aber nicht

Ich rufe eine Testprozedur auf
Delphi-Quellcode:
 for i := 0 to 50000 do
  TTestUnit.Test(TTest.tdmPostMessage, Form1.Handle, WM_THREAD_MSG, 0, 0, 'TEST STR');
Delphi-Quellcode:
class procedure TTestUnit.Test(Method: TTest; hWnd: Winapi.Windows.hWnd; Msg: UINT; wParam: Winapi.Windows.wParam; lParam: Winapi.Windows.lParam; aString: PChar);
var
 msgData: PTestData;
begin
 New(msgData);

 msgData.Msg := Msg;
 msgData.wParam := wParam;
 msgData.lParam := lParam;
 msgData.aString := aString;

 case Method of
  tdmSendMessage:
   SendMessage(hWnd, msgData.Msg, 0, Winapi.Windows.lParam(msgData));
  tdmPostMessage:
   PostMessage(hWnd, msgData.Msg, 0, Winapi.Windows.lParam(msgData));
  tdmQueue:
   ;
 end;
end;

{*
TTestData = record
  Msg: UINT;
  wParam: Winapi.Windows.wParam;
  lParam: Winapi.Windows.lParam;
  aString: PChar;
end;

PTestData = ^TTestData ;
*}
Delphi-Quellcode:
type
 TForm1...

 public
  procedure TTestMessage(var msg: TMessage); message WM_THREAD_MSG; // WM_THREAD_MSG ist WM_USER + 991;

implementation

procedure TForm1.TTestMessage(var msg: TMessage);
var
 msgData: PTestData;
begin
 msgData := PTestData(msg.lParam);
 try
  Caption := PTestData(msg.lParam).aString;
 finally
  Dispose(msgData);
 end;
end;
Beim Ausschalten des Programms erhalte ich exakt 40001 MemoryLeaks.

Geändert von Glados ( 7. Nov 2017 um 21:37 Uhr)
  Mit Zitat antworten Zitat
 


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 04:02 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