AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Probleme beim freigeben von mit getmem allocierten Speicher
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme beim freigeben von mit getmem allocierten Speicher

Ein Thema von Blizzard · begonnen am 5. Apr 2004 · letzter Beitrag vom 7. Apr 2004
 
Blizzard

Registriert seit: 4. Jan 2003
88 Beiträge
 
Delphi 6 Enterprise
 
#1

Probleme beim freigeben von mit getmem allocierten Speicher

  Alt 5. Apr 2004, 07:49
Hi,
ich bin grad dabei eine multithreading applikation zu schreiben bei der ich mittels postthreadmessage und peekmessage daten zwischen den threads hin und herschieben. mein problem ist jetzt das ich den speicher den ich mit getmem in thread a allociere und dann an thread b schicke in thread b mit freemem nicht mehr freigeben kann. Hier mal en code ausschnitt.

Code:
Const
 CMD_FORWARD = WM_USER+10;

Thread A
var
 puffer:PByte;
begin
while not terminated
...
 GetMem(puffer,receive.dwDataSize);
 ZeroMemory(puffer,receive.dwDataSize);
 copymemory(puffer,receive.Daten,receive.dwDataSize);
 PostThreadMessage(ThreadB.threadid,CMD_FOWARD,receive.dwDataSize,Cardinal(puffer));
...
end;

Thread B
var
 receive:PByte;
begin
while not terminated
...
 repeat
  PeekMessage(msg,0,WM_USER,WM_APP,PM_REMOVE);
 until (msg.message=CMD_FOWARD)or terminated;

 if terminated then exit;

 receive:=Pointer(msg.lParam);
...
 FreeMem(receive,msg.wParam);
end;
receive is ne datenstrukutr in der ich meine daten ablege.
der erste durchlauf in thread b funktioniert Problemlos. beim zweiten bekomm ich ne exception von wegen "ungültige Zeigeroperation". wobei getlasterror 0 ausgibt.

Jemand ne ahnung was ich falsch mache? kenn mich mit multithreading, messages und dynamischem speicher leider noch nicht so gut aus.

Thx
Blizzard
  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 11:17 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