Direct X Loader Lock



  • Immer wenn ich versuche etwas mit DirectX zu machen, jetzt mit DirectInput,

    Managed Debugging Assistant 'LoaderLock' has detected a problem in 'c:\dev\thecavern\eingabeaufforderung\debug\Eingabeaufforderung.exe'.
    Additional Information: DLL 'C:\WINDOWS\assembly\GAC\Microsoft.DirectX.DirectInput\1.0.2902.0__31bf3856ad364e35\Microsoft.DirectX.DirectInput.dll' is attempting managed execution inside OS Loader lock. Do not attempt to run managed code inside a DllMain or image initialization function since doing so can cause the application to hang.
    

    Hier der code

    ...
    		public ref class Keyboard{
    /***************************************************************************/
    			DirectInput::Device^		myDevice;
    			array<DirectInput::Key>^	myKeys;
    		public:
    			Keyboard(){
    				myDevice = gcnew DirectInput::Device(DirectInput::SystemGuid::Keyboard);
    				myKeys = gcnew array<DirectInput::Key>(0);
    			}
    ...
    int main(array<System::String ^> ^args)
    {
    	Keyboard^	k=gcnew Keyboard();
    
        return 0;
    }
    

    Was mache ich falsch oder wie berichtige ich das?



  • Hast Du noch irgendwelche anderen (eigene) DLLs in Deinem Projekt?



  • Nur die , in der die ref Class Keyboard drinne ist und von Microsoft die DirectX und die DirectInput Dll



  • Das ist wirklich nervig, immer kommt die LoaderLock Meldung Gibts keine möglichkeit das zu umschiffen?



  • Ja, du musst diesen MDA (Managed Debugging Assistant) in VS abschalten. (unter debug -> exceptions). Das liegt an den Managed DirectX DLLs, da kannst nichts dagegen machen.



  • Ok danke jetzt funktioniert es



  • Hallo,

    ich habe das gleiche Problem, möchte zum Abspielen gerne die DirectX.AudioVideoPlay verwenden.

    mein Code ist simpel:

    Audio ^myfile = gcnew("C:\\test.mp3");
    myfile->Play();
    

    Dann erhalte ich auch die LoaderLock Meldung. Kein Ding denk ich mir, deaktiviere ich das einfach wie oben schon angedeutet. Jedoch bekomme ich beim Ausführen immer noch einen Fehler, und zwar wird eine "unbehandelte Ausnahme" geworfen.

    Die Ausgabe:

    Informationen über das Aufrufen von JIT-Debuggen
    anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

    ************** Ausnahmetext **************
    Fehler in der Anwendung.
    -2147220890 (VFW_E_NO_TRANSPORT)
    bei Microsoft.DirectX.AudioVideoPlayback.Audio.Open(String fileName, Boolean autoRun)
    bei Microsoft.DirectX.AudioVideoPlayback.Audio..ctor(String fileName)
    bei TouchIt.ToItScreen.playbtn_Click(Object sender, EventArgs e) in c:\users\ralph\documents\visual studio 2008\projects\touchit\touchit\toitscreen1.h:Zeile 119.
    bei System.Windows.Forms.Control.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    bei System.Windows.Forms.Control.WndProc(Message& m)
    bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
    bei System.Windows.Forms.Button.WndProc(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    ************** Geladene Assemblys **************
    mscorlib
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
    ----------------------------------------
    TouchIt
    Assembly-Version: 1.0.3708.33476.
    Win32-Version: .
    CodeBase: file:///c:/Users/Ralph/Documents/Visual%20Studio%202008/Projects/TouchIt/Debug/TouchIt.exe.
    ----------------------------------------
    msvcm90d
    Assembly-Version: 9.0.21022.8.
    Win32-Version: 9.00.21022.8.
    CodeBase: file:///C:/Windows/WinSxS/x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.21022.8_none_96748342450f6aa2/msvcm90d.dll.
    ----------------------------------------
    System
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll.
    ----------------------------------------
    System.Windows.Forms
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
    ----------------------------------------
    System.Drawing
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
    ----------------------------------------
    System.Configuration
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll.
    ----------------------------------------
    System.Xml
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll.
    ----------------------------------------
    Microsoft.DirectX.AudioVideoPlayback
    Assembly-Version: 1.0.2902.0.
    Win32-Version: 5.04.00.2904.
    CodeBase: file:///C:/Windows/assembly/GAC/Microsoft.DirectX.AudioVideoPlayback/1.0.2902.0__31bf3856ad364e35/Microsoft.DirectX.AudioVideoPlayback.dll.
    ----------------------------------------
    Microsoft.DirectX
    Assembly-Version: 1.0.2902.0.
    Win32-Version: 5.04.00.2904.
    CodeBase: file:///C:/Windows/assembly/GAC/Microsoft.DirectX/1.0.2902.0__31bf3856ad364e35/Microsoft.DirectX.dll.
    ----------------------------------------
    mscorlib.resources
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
    ----------------------------------------
    System.Windows.Forms.resources
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
    ----------------------------------------

    ************** JIT-Debuggen **************
    Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
    Konfigurationsdatei der Anwendung oder des Computers
    (machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
    Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

    Zum Beispiel:

    <configuration>
    <system.windows.forms jitDebugging="true" />
    </configuration>

    Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
    Ausnahmen an den JIT-Debugger gesendet, der auf dem
    Computer registriert ist, und nicht in diesem Dialogfeld behandelt.

    Achja, nutze VS2008 (falls das als Info hilft :-))

    Ich hoffe, mir kann jemand helfen. Wenn man im Netz sucht findet man immer nur "disable LoaderLock".



  • In deinem Fehler sehe ich nichts von LoaderLock?

    Es fliegt eine Exception in
    c:\users\ralph\documents\visual studio 2008\projects\touchit\touchit\toitscreen1.h:Zeile 119.

    Interessant für dich vor allem auch der Hinweis welcher Fehler:
    -2147220890 (VFW_E_NO_TRANSPORT)

    Google nach VFW_E_NO_TRANSPORT

    MfG SideWinder



  • Ich vermute, dass entweder die angegebene Datei nicht existiert oder keine Soundkarte installiert ist (z.B. bei RDP).



  • Hmmm: Pins cannot connect because they don't support the same transport



  • ok, ich hab die Lösung. Eigentlich zu dämlich.
    Die Datei test.mp3 hab ich, warum auch immer, wohl vergessen zu erstellen :-)))

    Trotzdem danke an euch! *aufdenkopfschlagsmileysuch*


Anmelden zum Antworten