Hi Roland,
auch wenn du schon mit der 7.5 fast vertig bist, und die
bald rauskommt, so mach es wenigstens in der 8.0er
oder versuchs noch in der 7.5 reinzubauen.
Es geht um Callback-Funktionalität mit Profan.
Ich habe mehrere DLL´s, die alle über das Callback
Verfahren arbeiten, nach Aufruf einer Funktion also
Simultan zum Profanprogramm arbeiten und nach beendigung
der Funktion eine rückmeldung geben.
Als Rückmeldung hier das Profan-Fenster selber anzugeben,
ist zwars eine elegante möglichkeit, doch nur mit
viel Mühe lassen sich dann die Erreignisse von der
DLL ermitteln, geschweige denn, das diese auch alle
ankommen und nicht übersprungen werden. GetMessage
ist hier auch ein Speil mit dem Feuer, den im
Interpreter wartet das Programm, bis ein Ereigniss
eintrifft, als EXE wird garnicht gewartet, Getmessage
wird nach aufruf immer sofort wieder verlassen,
allerdings wird hier &W und &Lparam gesetzt, falls ein
erreigniss eingetroffen ist.
Nur das gsnze bringt einen auch nicht weiter, den
wenn Profan grad mal mit irgendwas anderes beschöftigt
ist, die dll sendet aber schon das Rückereigniss,
oder das Ausführen der DLL Funktion ist so schnell,
das nach Aufruf der DLL Funktion sofort schon
das Rücksignal erfolgt, bekommt Profan das überhaupt
nicht mit !!!
Mein Vorschlag wäre, das Profan intern wenigstens EIN
Callback-Speicher bzw. Register besitzt.
Ich erstelle mir so einen Speicher, bekomme das Handel
dieses Speichers zurück. Der DLL gebe ich nun dieses
Handel als Callback-Adresse an, wo es alles hinsendet.
Profan muss nun alle Aktionen, die in desem CallBack
Speicher eintreffen ermitteln, egal, was mein Quellcode
gerade macht, ob Sleep, Grafikaufbau oder in einer
Schleife grad was berechnet wird. Über ein Befehl kann
ich nun auslesen, ob da ein erreigniss stattgefunden hat,
bzw. profan sollte hier eine Message senden, das dort
ein erreginss vorliegt und es ausgelesen werden kann,
bzw. die Message auch wieder gelöscht wird.
Ew. am Programmende noch ein schlissen des Handels.
Thorsten
|