mciSendStringA - Rückgabe Probleme

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

DAK

Betreff: mciSendStringA - Rückgabe Probleme

BeitragMo, Jan 26, 2009 11:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin gerade dabei, mir einen kleinen Musikplayer zu schreiben (wmp hat ein paar kleinigkeiten, die mir auf die nerven gehen...)
Geht inzwischen schon ganz gut, nur ein paar kleinigkeitliche Probleme hab ich noch. Hauptsächlich jenes, dass ich die länge des lieds nicht raus krieg... da ich mp3s abspielen will (ja, ich kenn die geschichte mit den lizenzen, aber da das ganze nur für den eigengebrauch gedacht is, wirds wohl nicht über die 5k downloads kommen...), verwende ich MIC dafür.
Abspielen und so funktioniert eig alles ohne probleme, das einzige is, dass ich keine variablen vom MIC zurück kriegen kann...

das problembehaftete stück code:
Code: [AUSKLAPPEN]
   Method length()
      Local Retbank:TBank = CreateBank(12)
      mciSendStringA("Status "+Name()+" Length",Retbank,12,0)
      Local retval:String = PeekStr(retbank,5,0)
      Retbank = Null
      Print retval
   End Method

...

Function PeekStr:String(bank:TBank,Size:Int=64,Offset:Int=0)
   Local NewStr:String = ""
   For Local count:Int = offset To (offset+size-1)
      Local newchr:Byte = PeekByte(bank,count)
      If newchr = 0 Then Exit
      newstr = newstr + Chr(newchr)
   Next
   Return Newstr
End Function


beim PeekByte krieg ich nen "Unhandled Memory Exception Error"...

hab schon alles abgegrast, was ich dazu finden hab können, alles ausprobiert... nix funktioniert

unter bb sollts angeblich funktionieren (hab davon einige codes genommen und auf bmax umgeschrieben, hat aber alles nicht so recht funktioniert...)
Gewinner der 6. und der 68. BlitzCodeCompo
 

ChristianK

BeitragMo, Jan 26, 2009 12:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe deinen Code zwar nicht ausprobiert, aber in der Methode length() ist mir ein Fehler aufgefallen.
In BlitzMax wird der Pointer auf die Bank nicht wie in BB automatisch auf die eigentlichen Daten umgerechnet. Du musst also an mciSendStringA nicht die Bank übergeben, sondern BankBuf(Retbank).
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

DAK

BeitragMo, Jan 26, 2009 13:09
Antworten mit Zitat
Benutzer-Profile anzeigen
ah, danke, das war wohl mein fehler, danke, jetz funktioniert alles
Gewinner der 6. und der 68. BlitzCodeCompo

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group