Verfasst: 08.03.2009 01:36
Komisch!
Wenn ich das von Padraig gezeigte Beispiel so umbaue, das die Initialisierung in eine Procedure gepackt wird, stürzt das Programm ab.
Ändere ich hingegen den Aufruf der Funktionen folgendermaßen ab, dann läuft es.
ergebnis = CallCFunctionFast(*SNDH_Start,file,1)
.....
CallCFunctionFast(*SNDH_Stop)
Ich habe noch andere DLLs getestet, da ist das gleiche Problem.
Solange ich nicht mit Proceduren arbeite, kann ich "CallFunctionFast" nutzen, innerhalb funktioniert es entweder gar nicht, oder ich muss wieder "CallCFunctionFast" benutzen.
Kann mich da mal jemand aufklären? PB-Version übrigens 4.30.
Wenn ich das von Padraig gezeigte Beispiel so umbaue, das die Initialisierung in eine Procedure gepackt wird, stürzt das Programm ab.
Ändere ich hingegen den Aufruf der Funktionen folgendermaßen ab, dann läuft es.
ergebnis = CallCFunctionFast(*SNDH_Start,file,1)
.....
CallCFunctionFast(*SNDH_Stop)
Ich habe noch andere DLLs getestet, da ist das gleiche Problem.
Solange ich nicht mit Proceduren arbeite, kann ich "CallFunctionFast" nutzen, innerhalb funktioniert es entweder gar nicht, oder ich muss wieder "CallCFunctionFast" benutzen.
Kann mich da mal jemand aufklären? PB-Version übrigens 4.30.
Code: Alles auswählen
Global *SNDH_Start
Global *SNDH_Stop
Procedure InitOSM(initid,dll.s)
If OpenLibrary(initid, dll.s)
*SNDH_Start = GetFunction(0, "playOSMEMusicFile")
*SNDH_Stop = GetFunction(0, "stopOSMEMusic")
EndIf
EndProcedure
Procedure Play_Song(file.s)
ergebnis = CallFunctionFast(*SNDH_Start,file,1)
EndProcedure
InitOSM(0,"osmengine.dll")
Play_Song(test.sndh")
If OpenConsole()
PrintN("OSMEngine by SLiPPY/VeCTRONiX!")
PrintN("Press ESC To exit...")
Repeat
KeyPressed$ = Inkey()
Delay(20)
Until KeyPressed$ = Chr(27)
EndIf
CallFunctionFast(*SNDH_Stop)
CloseLibrary(0)