Bass.dll Fehler in VB2010...

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Vehementis.

    Bass.dll Fehler in VB2010...

    Heey, da mein VB2008 irgd. wie eine Macke hat, und ich es nicht wieder herunterladen mag, nehm ich nun VB2010!
    Jetzt hab ich Bass.dll .Net Installiert, aber der Verweis wurde mir nicht angezeigt.!
    Also habe ich ihn Maunel hinzugefügt(die bass.dll aus dem Programme Ordner)
    Jetzt bekomm ich aber eine Fehler meldung:

    VB.NET-Quellcode

    1. Ein Aufruf an die PInvoke-Funktion "Bass.Net!Un4seen.Bass.Bass::BASS_Init" hat das Gleichgewicht des Stapels gestört. Wahrscheinlich stimmt die verwaltete PInvoke-Signatur nicht mit der nicht verwalteten Zielsignatur überein. Überprüfen Sie, ob die Aufrufkonvention und die Parameter der PInvoke-Signatur mit der nicht verwalteten Zielsignatur übereinstimmen.

    VB.NET-Quellcode

    1. Imports Un4seen.Bass
    2. Public Class Form1
    3. Public stream As Integer
    4. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    5. BassNet.Registration("----", "----")
    6. Bass.BASS_Init(-1, 44100, BASSInit.BASS_DEVICE_CPSPEAKERS, IntPtr.Zero, Nothing)
    7. stream = Bass.BASS_StreamCreateFile("E:\test.mp3", 0, 0, BASSFlag.BASS_STREAM_AUTOFREE Or BASSFlag.BASS_STREAM_PRESCAN)
    8. Bass.BASS_ChannelPlay(stream, False)
    9. End Sub
    10. End Class

    Hab ich das Falsch mit dem verweis gemacht ?


    Gruß

    jan
    Ich geh mal davon aus das du ins verzeichniss auch ne bass.dll datei geschoben hast ... lösch die mal so das nur noch die bass.net.dll da is ... dan müsste es wieder gehen ... hatte das prob auch grade


    Ok da geht bei mir das Abspielen wieder nich weil er die Bass.dll nich gefunden hat -.-
    die könn nich mit und nicht ohne einander -.- was ein crap

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „D3ph7“ ()

    Ich denke euch ist schon klar wie das ganze geht?

    Also die bass.dll wurde eig. meines wissen in c++ geschrieben. Die war aber noch nicht immer für vb,c# zugänglich. Also gab es ein update wo die bass.net.dll rauskam. Diese macht eig auf gut Deutsch nicht viel anders als solche Sachen:

    Quellcode

    1. Private Declare Function BASS_Init Lib "bass.dll" (ByVal device As Integer, ByVal freq As UInteger, ByVal flags As UInteger, ByVal win As IntPtr, ByVal clsid As UInteger) As Boolean


    Sprich die Algorithmen sind in der bass.dll die bass.net.dll ist rein ein Mittelstück zwischen vb,c# und der bass.dll.

    Kurz ohne bass.dll geht es NICHT.


    An was das genau liegt weiß ich nicht ich würde einmal das Projekt neu aufmachen oder dir mal die docu anschauen ansonsten gibts noch ein Forum:

    un4seen.com


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Ggfs ein Problem it 64 vs 32 Bit?
    IntPtr.Zero ist 64 oder 32 bit - je nach Plattform. Die Bass.DLL gibts mW auch in zwei Ausführungen? Wenn man der 32 bit DLL einen 64 bit Zeiger übergibt, geht das natürlich mit genau dieser Fehlermeldung schief!
    ich hab den selben Fehler also:
    Spoiler anzeigen
    Ein Aufruf an die PInvoke-Funktion "Bass.Net!Un4seen.Bass.Bass::BASS_Init" hat das Gleichgewicht des Stapels gestört. Wahrscheinlich stimmt die verwaltete PInvoke-Signatur nicht mit der nicht verwalteten Zielsignatur überein. Überprüfen Sie, ob die Aufrufkonvention und die Parameter der PInvoke-Signatur mit der nicht verwalteten Zielsignatur übereinstimmen.


    Das ist mein code:
    Spoiler anzeigen

    Quellcode

    1. Imports Un4seen
    2. Imports Un4seen.Bass
    3. Public Class Form1
    4. Public stream As Integer
    5. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    6. Bass.BASS_Init(-1, 44100, BASSInit.BASS_DEVICE_CPSPEAKERS, IntPtr.Zero, Nothing)
    7. stream = Bass.BASS_StreamCreateFile("Musiktool\c1.wav", 0, 0, BASSFlag.BASS_STREAM_AUTOFREE Or BASSFlag.BASS_STREAM_PRESCAN)
    8. Bass.BASS_ChannelPlay(stream, True)
    9. End Sub
    10. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    11. Bass.BASS_ChannelStop(stream)
    12. End Sub
    13. End Class


    Zu meinem System:
    ich hab Windows 7 / SP1 / 32Bit
    ich benutze VB 2010 express
    Treiber sind alle aktuell soweit ich weiß
    Net Framework und Directx sind auch aktuell

    um ein paar Fehler auszuschließen...ich habe folgendes getan...
    ich habe Bass.NET (2.4.7.4) heruntergeladen und installiert
    Ich musste den Verweis manuell aus c:\Programme\Bass.net\Bass.net.dll einfügen da es nicht in der liste stand
    dann habe ich Bass24 runtergeladen und die Bass.dll in den debug Ordner meines neuen Projektes gepackt
    dann hab ich mein Programm geschrieben und den fehler bekommen
    wenn ich dann den Grünen Pfeil einfach nochmal drücke höre ich den Ton zwar aber es macht keinen Loop wie es eigentlich sollte
    außerdem bringt er mir den fehler beim drücken von button 1 jedesmal wieder
    :cursing:
    hab es auch schon alles runter geschmissen und neu installiert und den PC neu gestartet
    bringt alles nix
    hoffe es kann mir wer helfen :?: ;(

    Die Antwort ist hart:

    Es kommt davon, wenn man beliebigen (alten) Code via C&P einfuegt!

    Erstell ein neues Projekt und tipp den Code ein, dann funktioniert auch Dein Programm!
    VB unterstuetzt Dich ja beim tippen - die Fehler koennen dann nicht entstehen!

    MfG
    ich hab kein c&p gemacht....
    ich hab den code als es nicht funktioniert hat ein paar mal geändert und hin und her geschoben, vereinfacht und Erstmahl unnötige Funktionen raus genommen... kann sein das dabei Fehler entstanden sind...
    hab meine Informationen zu Bass.dll von Youtube, aus nem Bild copy paste machen ist was schwer ;)
    aber danke für den Tipp werde es versuchen

    EDIT//
    hab den code nochmal abgetippt...
    ich sehe keinen unterschied zum vorherigen und es funktioniert immer noch nicht...
    hab alle einträge durch automatisch vervollständigen von VB eintragen lassen

    solche Anschuldigungen kann man sich auch sparen...
    wenn ich die Arbeit anderer haben wollte würde ich mir gleich nen midiplayer runterladen und gut is...

    habe gestern 4 Stunden nach dem Fehler gesucht Foren gelesen und Videos geschaut bevor ich selber geschrieben hab weil ich gerade nicht einfach Sachen kopieren will....

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Vehementis“ ()

    Einspruch!

    z.B. hier:

    1.

    VB.NET-Quellcode

    1. Bass.BASS_Init(-1, 44100, BASSInit.BASS_DEVICE_CPSPEAKERS, IntPtr.Zero, Nothing)


    Nach "IntPtr.Zero" folgt kein weiterer Parameter.

    2.
    Bass.BASS_ChannelPlay(stream, True)

    False waere richtig.
    MfG
    Danke ohne das Nothing funktioniert es jetzt ohne Fehlermeldung :thumbsup:

    Meine Vermutung das ich es brauche kam daher:


    Zu dem anderen...

    meiner Meinung nach wird durch das True am ende aus dem Ton ein Loop
    er bringt mir auch keine Fehlermeldung allerdings tut er egal ob ich False oder True reinschreibe immer das selbe, er spielt es einmal ab und stoppt dann... kann mir wer sagen wie ich den Loop hinbekomme?

    EDIT//
    hab den Loop hinbekommen

    VB.NET-Quellcode

    1. stream = Bass.BASS_StreamCreateFile("Musiktool\c1.wav", 0, 0, BASSFlag.BASS_SAMPLE_LOOP)


    danke für die Hilfe :thumbup:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Vehementis“ ()