Deutsch
Forum

Callback & Absturz bei fehlendem WaitInput

 

Sebastian
Sprenger
Hallo zusammen,
habe hier ein größeres Problem...

1. Ich versuche, von meinem MIDI-Keyboard Daten auszulesen. Klappt eigentlich auch. Aber wenn ich z.B. ein WaitInput weglasse oder ein SetTimer setze (warum ist das mache, ist ne andere Geschichte) und dann eine Taste auf dem Keyboard drücke, stürzt Profan mit einer schweren Zugriffsverletzung und einer Fehlermeldung ohne Text ab, sogar in folgendem Minimalcode!

XProfan 9, Windows ME, 1.8 Ghz
KompilierenMarkierenSeparieren
2. Falls das 1. Problem nicht lösbar ist...
Ich hatte die Routine zum Auslesen der Daten bereits in Assembler geschrieben, das hat perfekt funktioniert. Allerdings bin ich inzwischen auf die Idee gekommen, das Programm nachher zum XProfan-Wettbewerb einzureichen. Darf ich da überhaupt noch dran teilnehmen, wenn ich exakt 100 Bytes Maschinencode für ein Callback in eine Bereichsvariable einbinde und diese Variable an midiInOpen übergebe?

3. Wo ich grad schreibe, was heißt denn das?
Warning: Page Restrictor not installed correctly - Headers already sent!
Bekomme diese Meldung ständig in der Vorschau.

Gute Nacht,
Sebastian
 
Profan² 7.0e, XProfan 9, 11.2a, FreeProfan32
Windows Vista Home Premium 32-Bit, 2.8 Ghz, 4 GB RAM
Windows Me, 1.8 Ghz, 256 MB RAM
23.09.2007  
 




RGH
Zu 1.:
XProfan ist nicht in der Lage, zwei Quellcodes in einem Programm parallel auszuführen. Daher kann die Callback-Funktion, so wie Du es programmiert hast, nicht korrekt funktionieren.
Die Callbacks in XProfan wurden in erster Linie dazu geschaffen, um API-Funktionen nutzen zu können die Callback-Funktionen nutzen. Da in diesem Fall die XProfan-Callback-Routine aufgerufen wird, während die API-Funktion ausgeführt wird, kommt es zu keinem Konflikt. Nach Beenden der API-Funktion macht XProfan da weiter wo es zuvor unterbrochen wurde, da alle relevanten Systemparameter vor Ausführen der Callback-Funktion gesichert wurden.
In anderen Fällen, etwa bei Subclassing von Fenstern, ist der Fast-Mode (siehe unter Set(FastMode,n%)) Pflicht und es muß gewährleistert werden, dass die Callback-Routine keinerlei Unterbrechung, etwa durch WaitInput, Timer, etc. zuläßt. Vielleicht reicht bei Dir ja schon der Fastmode aus. Das mit dem Assembler ist zusätlich sicher auch hilfreich.

Zu 2.:
Ich sehe keinen Grund, was bei einem Wettbewerbseintrag gegen Assembler in einer Bereichsvariablen spricht, zumal ja vermutlich die Routine, die diesen Bereich füllt, in XProfan und Teil des Programmes ist.

Gruß
Roland

Nachtrag: Möglicherweise wird es in küntigen XProfanversionen erweiterte Callback-Möglichkeiten geben.
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
23.09.2007  
 




Jörg
Sellmeyer

Darf ich da überhaupt noch dran teilnehmen, wenn ich exakt 100 Bytes Maschinencode für ein Callback in eine Bereichsvariable einbinde und diese Variable an midiInOpen übergebe?


Da stimme ich Roland zu. Nicht daß ich der Jury vorgreifen möchte, aber was ist besser geeignet, zu zeigen, was mit Profan möglich ist, als das direkte Einbinden von ASM.
Gruß
Jörg
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
23.09.2007  
 




Frank
Abbing

Darf ich da überhaupt noch dran teilnehmen, wenn ich exakt 100 Bytes Maschinencode für ein Callback in eine Bereichsvariable einbinde und diese Variable an midiInOpen übergebe?


Selbstverständlich. XPIA-XProfancodes machen es ja ähnlich. Dort wird sogar eine komplette Assembler-Dll in die Exe eingebunden.

Ich selber benutze für Programm-Callbacks nur noch Assemblercode.
 
23.09.2007  
 




Sebastian
Sprenger
RGH
zumal ja vermutlich die Routine, die diesen Bereich füllt, in XProfan und Teil des Programmes ist.

So ist es.

Wunderbar, vielen Dank für die Antworten!
 
Profan² 7.0e, XProfan 9, 11.2a, FreeProfan32
Windows Vista Home Premium 32-Bit, 2.8 Ghz, 4 GB RAM
Windows Me, 1.8 Ghz, 256 MB RAM
23.09.2007  
 



Zu den Callbacks: Davon rede ich seit Jahren.

Zum Midi-Keyboard: Genau sowas brauche ich auch sofort her damit!

Zum Page-Restrictor: Die Meldung wird nun nicht mehr gezeigt. (Ich hatte da etwas übersehen)
 
23.09.2007  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

6.687 Betrachtungen

Unbenanntvor 0 min.
H.Brill07.05.2024
iF13.09.2015
Sebastian Sprenger19.03.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