BASS.dll Fehler [gelöst]

Anfängerfragen zum Programmieren mit PureBasic.
gem
Beiträge: 14
Registriert: 24.08.2014 18:04

BASS.dll Fehler [gelöst]

Beitrag 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
Zuletzt geändert von gem am 11.10.2014 13:49, insgesamt 1-mal geändert.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: BASS.dll Fehler

Beitrag 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)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: BASS.dll Fehler

Beitrag 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")
:wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Bisonte
Beiträge: 2465
Registriert: 01.04.2007 20:18

Re: BASS.dll Fehler

Beitrag 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")
:wink:
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 .... :roll:
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: BASS.dll Fehler

Beitrag von ts-soft »

:lol:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: BASS.dll Fehler

Beitrag von STARGÅTE »

Ja das kommt davon wenn man Antworten schreibt ohne es in PureBasic zu schreiben/testen.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
gem
Beiträge: 14
Registriert: 24.08.2014 18:04

Re: BASS.dll Fehler

Beitrag 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.
Antworten