Deutsch
Forum

Wie kann ich Callback-Funktion in Profan nutzen

 

Jac
de
Lad
Hallöle,

wie kann ich die Adresse einer Callback-Funktion in Profan nutzen? Also ich meine, ich schreibe eine schrecklich komplizierte Funktion und will, dass der Fortschritt von was auch immer ausgegeben wird. Also soll als Parameter die Adresse einer Funktion mittels ProcAddr übergeben werden. Kann ich die dann per Call aufrufen???

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
05.07.2006  
 




Sebastian
König
Hallo Jac,

im Prinzip sollte es kein Problem sein, eine Prozedur über ihre ProcAddr() aus dem eigenen Programm heraus mit Call() aufzururfen, allerdings fällt mir im Moment keine Situation ein, in der das sinnvoll wäre - Du kannst die Prozedur schließlich selbst ganz normal aufrufen.... (oder bin ich jetzt nur zu phantasielos? )

Der primäre Nutzen ist der Callbacks ist sicherlich die Möglichkeit die Adressen an bestimmte API-Funktion zu übergeben, die eine Callback-Adresse erwarten - zum Beispiel SetWindowLong() - Stichwort Subclassing - oder auch SetTimer().

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
05.07.2006  
 



Genau, auch Funktionen welche irgendwas enumierieren (oder iterieren ) brauchen oft eine Prozeduradresse um die Einzelergebnisse abzuliefern. Z.B. Auflisten von installieren Fonts oder Dateidownload mit Prozessbar...

Du kannst das Call auch gut verwenden wenn Du innerhalb von ASM-Passagen auf XProfanprozeduren zugreifen möchtest.
 
06.07.2006  
 



Mit einem Callback gibts Du anderen Funktionen, meist in DLLs (so wie die API ja auch) eine Funktionsadresse, welche diese direkt aufrufen und ausführen können, Fast unabhängig davon was Dein Programm gerade macht. Deshalb kann so ein Callback unter anderem, für ein flüssigeren Lauf der Ereignisbehandlung sorgen. Selber aufrufen eines solchen Callback per Call macht im allgemeinen wirklich keinen Sinn , So ein Callback ist in gewisser Hinsicht fast ein Thread. Einsatzgebiete, wie iF schon teilweise sagte, Windows-Callback, Enumerationen, Streaming von Daten (z.B. um RTF schnell zu füllen) oder auch Fortschrittsanzeigen, weil eine Pack- oder Kopierroutine länger braucht, und so schnell mal Meldung macht und auch auf Abbruch prüft.
 
06.07.2006  
 




Jac
de
Lad
Hm, das klärt meine Frage.

@Sebastian: Ich hab zum Beispiel eine PCU, die eine lange Operation ausführt und als Parameter übergebe ich die Adresse einer Profan-Prozedur, die dann meinetwegen einen Wert in Prozent bekommt und dann das entweder ausgibt oder was draus berechnet oder...ist also recht sinnvoll!

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
06.07.2006  
 




Sebastian
König

@Sebastian: Ich hab zum Beispiel eine PCU, die eine lange Operation ausführt und als Parameter übergebe ich die Adresse einer Profan-Prozedur, die dann meinetwegen einen Wert in Prozent bekommt und dann das entweder ausgibt oder was draus berechnet oder...ist also recht sinnvoll!


Ok, stimmt . Auch für die von iF erwähnten ASM-Passagen ist es natürlich praktisch.

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
06.07.2006  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

768 Betrachtungen

Unbenanntvor 0 min.
H.Brill26.01.2023
gerd12.01.2013

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie