Thema: Delphi cdecl-Callback und TForm

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#7

Re: cdecl-Callback und TForm

  Alt 3. Nov 2009, 11:00
Zitat von Gloegg_FHBI:
Wie kriege ich denn jetzt die DLL dazu im Kontext der VCL zu laufen?
praktisch gesehn ... garnicht

- man kann die Abarbeitung z.B. via Synchronize
in den Hauptthread verlegen (hier nicht so leicht möglich)

- man kann den zugriff auf gemeinsame Daten sperren
(ist mit der VCL nicht leicht möglich)

- du kannst die Daten erstmal irgendwo in einer Liste zwischenspeichern
und dann im Haupthtread (Timer oder Eventgesteuert) dieses auslesen und dort ins Memo einfügen




für Lezteres gibt es mehrere Möglichkeiten

- SendMessage (oder auch Synchronize)
man brauch nicht extra Speicher anlegen, da er direkt weitergegeben wird,
aber solange bis sich der Haupthtread der Abarbeitung annimmt, wartet der andere Thread
und auch wärend der Haupthtrad dann arbeitet

- PostMessage
man kopiert die Daten irgendwo hin und gibt (eventuell samt Datenzeiger) denm Haupthtread nur eine Nachricht, die Abarbeitung hier geht danach sofort weiter
und der Haupthtread nimmt sich, sobald er Zeit hat, diese Nachricht/Message und fügt es ins Memo ein

- passend zu PostMessage oder Eventsteuerung hab ich mir auch noch das gebastelt
http://www.delphipraxis.net/internal...t.php?t=167796
da kann man die Daten kurzzeitig einlagern und dann im Hauptthread wieder rausholen
über 'nen threadsicheren Zugriff auf die Daten kümmert sich dann die Klasse


hier steht euch noch einiges dazu
http://www.delphipraxis.net/internal...t.php?t=167688
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat