AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi WaveInOpen - CALLBACK_FUNCTION - Problem
Thema durchsuchen
Ansicht
Themen-Optionen

WaveInOpen - CALLBACK_FUNCTION - Problem

Ein Thema von red · begonnen am 9. Jul 2003 · letzter Beitrag vom 9. Jul 2003
 
tommie-lie
(Gast)

n/a Beiträge
 
#4

Re: WaveInOpen - CALLBACK_FUNCTION - Problem

  Alt 9. Jul 2003, 14:53
Zitat von red:
gibt es ne möglichkeit die Callback-Routine "ins Object zu legen"
Das habe ich schon mit der ThreadProc probiert, die ich in einem Objekt haben wollte, und habe es nicht hingekriegt.
Windows erwartet "echte" Funktionen als Parameter, da Objekte aber intern Pointer sind, haben sie keine echten Adressen für ihre Methoden, den Windows benutzen könnte.
Daher schlägt normalerweise schon der Versuch fehl, einen Pointer auf eine Methode (Funktion oder Prozedur in Objekt) zu benutzen. (Fehlermeldung: "Variable required")

Zitat:
Address of a fixed callback function .. entfällt ja nun
a handle to a window .. entfällt auch
wie sieht es aus mit threads bzw einem event handle? (kenn mich mit beidem garnich aus)
Also bei einem Thread werden an das Handle des Threads die Nachrichten MM_WIM_OPEN, MM_WIM_CLOSE, und MM_WIM_DATA geschickt, die du mit GetMessage
selbst abfangen musst (wie in einem nonVCL-Programm), solange der Thread läuft. Ich weiß nicht genau, was du in deiner WaveInProc machen würdest, wenn sie funktionieren würde, aber mit Hilfe von InterlockedExchange, CriticalSections und Pointern wäre das sicherlich eine brauchbare Alternative.
Bei einem Event Handle handelt es sich um ein Windows-Event, das zwei Stati hat, entweder "signaled" oder "nonsignaled". Das ganze arbeitet auf Thread-Ebene und dient dazu, einen Thread für eine unbestimmte Zeit auf "Idle" zu zu setzen und automatisch wieder zu wecken. Die Funktion dazu lautet "WaitForSingleObject" und nimmt u.A. ein Event als Parameter auf. Die Funktion ist vom Ergebnis ähnlich wie Sleep(), nur daß auf dieses Event gewartet wird, daß von einem anderen Thread auf "signaled" gesetzt wird. Wie damit irgendwelche Parameter übergeben werden sollen, weiß ich nicht (davon steht auch nix im PSDK).
  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 16:22 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