Probleme mit SuperStrict

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Midimaster

Betreff: Probleme mit SuperStrict

BeitragFr, Sep 11, 2009 12:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe Probleme meinen Code Superstrict zu machen, bei einigen Funktionen zu OpenAL, die ich mir aus den Foren kopiert habe, weiß ich nicht den korrekten Typ.

Ohne Superstrict läuft das Programm 1A, aber Superstrict wäre mir lieber.
Ich habe mal die relevanten Stellen zusammengestellt, schaltet man Superstrict an hagelt es Fehlermeldungen:

Code: [AUSKLAPPEN]

'SuperStrict

If OpenALInstalled()=False Then RuntimeError "You need to install OpenAL !"

EnableOpenALAudio()
SetAudioDriver("OpenAL")


' hier fehlen die korrekten Typen:
Global Device
Global CaptureDevice
 
' besser so... aber stimmt das wirklich?
'Global Device : Int
'Global CaptureDevice:Int


Device=alcOpenDevice(Null)

If Device=Null Then RuntimeError "No access to OpenAL Device !"

Global flag%=InitCapture()
If flag=False Then  RuntimeError "No access to OpenAL capture Device !"


InitCapture

ShutdownOpenAL()

End




Function InitCapture()
   'hier muss auch was falsch sein: gibt immer einen Error: "Function cannot return a value"
       If (alcIsExtensionPresent(Device, "ALC_EXT_CAPTURE") = AL_FALSE) Then Return False


   CaptureDevice = alcCaptureOpenDevice(Null, 44100, AL_FORMAT_MONO16, 44100*5*2);
       
   ' und wie soll das gehen wenn CaptureDevice Integer ist?
   If Not(CaptureDevice) Then Return False
   
   
   Return True
EndFunction




Function ShutdownOpenAL()
   alcCaptureStop(CaptureDevice)
       alcCloseDevice(CaptureDevice)
       alcCloseDevice(Device)
EndFunction




Xeres

Moderator

BeitragFr, Sep 11, 2009 12:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Function InitCapture:Int()
Eine Funktion, zu der kein Rückgabe-typ angegeben wurde, liefert mit SuperStrict auch nichts zurück (void) - Für True oder False solltest du also Int angeben.
In der Dokumentation sollte stehen, ob und welche Typen die OpenAL Funktionen zurück geben.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Midimaster

BeitragFr, Sep 11, 2009 15:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist leider gar nicht mein Problem!

In der Funktion InitCapture stehen zwei Zeilen, die unter Superstrict Probleme machen:

Diese Zeile scheint Unsinn zu sein, jedenfalls gibt es die Fehlermeldung "Function cannot return a value"
Code: [AUSKLAPPEN]

 ....If (alcIsExtensionPresent(Device, "ALC_EXT_CAPTURE") = AL_FALSE)....



und diese folgende Zeile gibt einen Fehler, wenn man (wie in einigen anderen Foren-Beiträgen empfohlen) CaptureDevice als :INT definiert:

Code: [AUSKLAPPEN]

If Not(CaptureDevice) ....



deshalb habe ich am Anfange des Codes momentan die Definition ohne Angabe des Types stehen, was aber gegen Superstrict verstößt:


Code: [AUSKLAPPEN]

' hier fehlen die korrekten Typen:
Global Device
Global CaptureDevice



Wer von Euch weiß, wie hier korrekt definiert werden muss?

FireballFlame

BeitragFr, Sep 11, 2009 16:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Doch, das war dein Problem, Xeres hat dir doch bereits die richtige Antwort gegeben?!

Midimaster hat Folgendes geschrieben:
und diese folgende Zeile gibt einen Fehler, wenn man (wie in einigen anderen Foren-Beiträgen empfohlen) CaptureDevice als :INT definiert:

Ich habe kein OpenAL, daher ist das so ziemlich die einzige Zeile, die bei mir keinen Fehler produziert. Wenn ich mir den Code aber so anschaue, sieht es aus, als solltest du die beiden Variablen als Byte Ptr deklarieren... EDIT: Nein, doch nicht, Integer wird wohl richtig sein...
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group