Italia
Foro

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 trasferimento 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 circa 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 trasferimento, 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 DLL (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, per 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 per die von iF erwähnten ASM-Passagen ist es naturalmente praktisch.

MfG

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



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

826 Views

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

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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