[c#]Problem mit System.ExecutionEngineException bei Funktionsaufruf...



  • Ich habe ein Problem das ich bisher noch nie hatte und ich finde auch keine Lösung... vll. kann mir ja hier jemand weiterhelfen.
    Hier ist das Problem:

    Ich verwende lame_enc.dll um wav -> mp3 zu converten. Alles funktioniert doch unmittelbar beim schreiben des Streams schmeißt das Programm jedesmal die im Titel genannte Exeption und ich verstehe einfach nicht warum.

    Hier ist der Code:

    //Hier ist eine "Überladung" um nur 4 Argumente verwenden zu müssen:
    
    //Diese wird aufgerufen von einer anderen Klasse die Parameter stimmen das habe ich bereits überprüft.... 
            public static uint EncodeChunk(uint hbeStream, byte[] buffer,
                    byte[] pOutput, ref uint pdwOutput)
            {
    
                return EncodeChunk(hbeStream, buffer,
                        0, (uint)buffer.Length, pOutput, ref pdwOutput);
    
            }
    
     public static uint EncodeChunk(uint hbeStream, byte[] buffer, int index, uint nBytes, byte[] pOutput, ref uint pdwOutput)
            {
    
                uint err = 0;
                GCHandle handle = GCHandle.Alloc(buffer, GCHandleType.Pinned);
    
                try
                {
    
                    IntPtr ptr = (IntPtr)
                        (handle.AddrOfPinnedObject().ToInt32() + index);
    
                    err = beEncodeChunk(hbeStream,
                            nBytes / 2, ptr, pOutput, ref pdwOutput);
    
                }
                finally
                {
    
                    handle.Free();
    
                }
    
                return err;
    
            }
    
    //Hier ist der DllImport für die Funktion
    [DllImport("lame_enc.dll")]
            protected static extern uint
            beEncodeChunk(uint hbeStream, uint nSamples, IntPtr pSamples,
                    [In, Out] byte[] pOutput, ref uint pdwOutput);
    

    also an was könnte das liegen damit ich wenigstens weiß nach was ich suchen muss....



  • Name ist Programm



  • Sorry habe noch etwas vergessen nähmlich die Fehlermeldung diese kommt bei dem Funktionsaufruf

    public static uint EncodeChunk(uint hbeStream, byte[] buffer,
                    byte[] pOutput, ref uint pdwOutput)
    

    und ist folgende:

    Eine nicht behandelte Ausnahme des Typs "System.ExecutionEngineException" ist in mscorlib.dll aufgetreten.
    

  • Administrator

    Es wäre noch praktisch, wenn du die tatsächliche Fehlermeldung angeben würdest. Tipp: Jede Exception hat ein Message Property mit zusätzlichen Informationen. Sollte aber grundsätzlich auch im Fehlerdialog erscheinen. Zudem ist die ExecutionEngineException nicht gerade eine Ausnahme welche Regelmässig für alles Mögliche auftaucht. Wenn man mit einer Suchmaschine nach ExecutionEngineException und PInvoke sucht, kommen gleich ein paar mögliche Fehlerquellen. Zum Beispiel falsche Deklaration der P/Invoke Funktion. Wie lautet denn die C Signatur?

    Grüssli



  • Ich habs herausgefunden ... kann geschlossen werden


Log in to reply