AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

PostMessage und Speicherlecks

Ein Thema von globalv · begonnen am 23. Aug 2020 · letzter Beitrag vom 2. Sep 2020
 
globalv

Registriert seit: 23. Aug 2020
4 Beiträge
 
#1

PostMessage und Speicherlecks

  Alt 23. Aug 2020, 07:00
Hallo zusammen,

Ich verwende PostMessage, um eine Instanz einer Klasse (TMyData) zu senden, die variable Zeichenfolgen enthält. Wenn PostMessages fehlschlägt oder die gesendete Instanz vom Message-Handler empfangen wird, rufe ich auch den Destruktor auf.

Zu Erläuterung ein Ausschnitt aus dem Code:

Delphi-Quellcode:
// Data to send
TMyData=class
  Data1: string;
  Data2: string;
  Data3: string;
end;

// send
procedure TTestClass1.PostTestData(
  AData1: string;
  AData2: string;
  AData3: string);
var
  test_data: TMyData;
begin
  test_data:= TMyData.Create;

  test_data.Data1:= AData1;
  test_data.Data2:= AData2;
  test_data.Data3:= AData3;

  if not PostMessage(my_handle,WM_MY_MESSAGE,0,LPARAM(test_data)) then
    test_data.Free;
end;

// receive
procedure TTestClass2.Message_WM_MY_MESSAGE(var Msg: TMessage);
var
  test_data: TMyData;
begin
  test_data := TMyData(Msg.LParam); // is this also compatible with 64 Bit?

  try
    // Do some work
  finally
    test_data.Free;
  end;
end;
Ich habe System.ReportMemoryLeaksOnShutdown := true gesetzt, um Speicherlecks zu erkennen.
Obwohl ich den Destruktor für alle Objekte aufrufe, wird ein Speicherleck bei TMyDatafestgestellt. PostMessage wird auch innerhalb einer Anwendung verwendet.

Kann es sein, dass im Falle von PostMessage es sich um eine "Falschmeldung" handelt?
Und sollte man eigentlich mit PostMessage variable Zeichenfolgen über eine Klasse versenden?

Viele Grüße
  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 06:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz