Seite 1 von 1
BASS.dll Fehler [gelöst]
Verfasst: 11.10.2014 00:54
von gem
Guten Abend
Leider funktioniert das simple Programm bei mir nicht. Die Anwendung stürzt bei der Funktion
BASS_StreamCreateFile ohne Fehlermeldung ab.
Die bass.pbi habe ich auch verwendet allerdings ohne Erfolg.
Dort scheint die Funktion
BASS_StreamCreateFile auch nicht richtig zu funktionieren.
Wäre cool wenn jemand eine Idee hat woran das liegen könnte
Schöne Grüße
Gabriel
BASS.dll
http://www.un4seen.com/
Code: Alles auswählen
basslib = 1
filename.s = "example.mp3"
If OpenLibrary(basslib,"bass.dll")
CallFunction(basslib,"BASS_Init",-1,44100,0,0,0)
CallFunction(basslib,"BASS_StreamCreateFile",0,@filename,0,0,0)
CallFunction(basslib,"BASS_Free")
CloseLibrary(basslib)
EndIf
Re: BASS.dll Fehler
Verfasst: 11.10.2014 03:03
von STARGÅTE
BASS_StreamCreateFile kann in deinem Fall auch nicht funktionieren, weil in der Dokumentation steht:
Code: Alles auswählen
HSTREAM BASS_StreamCreateFile(
BOOL mem,
void *file,
QWORD offset,
QWORD length,
DWORD flags
);
Das heißt, der 3 und 4 Parameter muss eine Quad sein, was mit CallFunction() aber nicht verwendet werden kann:
Hinweis: Diese Funktion ist nicht sehr flexibel und kann nicht mit String/Fließkomma/Double/Quad-Parametern oder String/Fließkomma/Double/Quad-Rückgabewerten umgehen. Die Verwendung von Prototypen ist stattdessen sehr zu empfehlen.
Das wird sicher für andere Funktionen ebenfalls zutreffen. Daher lieber mit Prototype arbeiten:
Code: Alles auswählen
Prototype BASS_StreamCreateFile(mem.i, *file, offset.q, length.q, flags.l) ; falls BOOL mit .i übersetzt werden darf.
und dann:
Code: Alles auswählen
BASS_StreamCreateFile.BASS_StreamCreateFile = LibraryFunctionAddress(basslib, ,"BASS_StreamCreateFile")
BASS_StreamCreateFile(0,@filename,0,0,0)
Re: BASS.dll Fehler
Verfasst: 11.10.2014 08:37
von ts-soft
STARGÅTE hat geschrieben:
und dann:
Code: Alles auswählen
BASS_StreamCreateFile.BASS_StreamCreateFile = LibraryFunctionAddress(basslib, ,"BASS_StreamCreateFile")
Code: Alles auswählen
BASS_StreamCreateFile.BASS_StreamCreateFile = GetFunction(basslib, ,"BASS_StreamCreateFile")

Re: BASS.dll Fehler
Verfasst: 11.10.2014 08:56
von Bisonte
ts-soft hat geschrieben:STARGÅTE hat geschrieben:
und dann:
Code: Alles auswählen
BASS_StreamCreateFile.BASS_StreamCreateFile = LibraryFunctionAddress(basslib, ,"BASS_StreamCreateFile")
Code: Alles auswählen
BASS_StreamCreateFile.BASS_StreamCreateFile = GetFunction(basslib, ,"BASS_StreamCreateFile")

und ihr meint beide wohl
Code: Alles auswählen
BASS_StreamCreateFile.BASS_StreamCreateFile = GetFunction(basslib, "BASS_StreamCreateFile")
Wie sich ein Copy-Fehler selbstständig machte ....

Re: BASS.dll Fehler
Verfasst: 11.10.2014 09:50
von ts-soft
Re: BASS.dll Fehler
Verfasst: 11.10.2014 13:18
von STARGÅTE
Ja das kommt davon wenn man Antworten schreibt ohne es in PureBasic zu schreiben/testen.
Re: BASS.dll Fehler
Verfasst: 11.10.2014 13:48
von gem
Vielen Dank hat wunderbar geklappt.
und mal wieder was dazu gelernt
PS: Bin seit kurzem hier und muss sagen das ist ein richtiges gutes Forum.