Direct3D - bekomme Fehlermeldung System.IO.FileLoadException

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Thilo87.

    Direct3D - bekomme Fehlermeldung System.IO.FileLoadException

    Hallo,

    ich bin gerade dabei mich durch Tutorials für Direct3D durchzuarbeiten. Aber schon am ersten scheitert es. Ich habe folgendes Projekt geschrieben


    VB.NET-Quellcode

    1. Imports Microsoft.DirectX
    2. Imports Microsoft.DirectX.Direct3D
    3. Imports Microsoft.DirectX.DirectInput
    4. Public Class Form1
    5. Dim bkgColor As Color = Color.Black
    6. Dim d3ddev As Direct3D.Device
    7. Dim d3dpp As Direct3D.PresentParameters
    8. Dim bProgramRun As Boolean = True
    9. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    10. InitD3D()
    11. RunD3D()
    12. End Sub
    13. Private Sub InitD3D()
    14. d3dpp = New Direct3D.PresentParameters
    15. d3dpp.DeviceWindow = Me
    16. d3dpp.BackBufferCount = 1
    17. d3dpp.BackBufferFormat = Format.X1R5G5B5 ' ?
    18. d3dpp.BackBufferWidth = Me.Width
    19. d3dpp.BackBufferHeight = Me.Height
    20. d3dpp.SwapEffect = SwapEffect.Discard
    21. d3dpp.PresentationInterval = PresentInterval.Immediate
    22. d3dpp.Windowed = True
    23. d3dpp.EnableAutoDepthStencil = True
    24. d3dpp.AutoDepthStencilFormat = DepthFormat.D24S8
    25. d3ddev = New Direct3D.Device(0, Direct3D.DeviceType.Hardware, Me, CreateFlags.HardwareVertexProcessing, d3dpp)
    26. End Sub
    27. Private Sub RunD3D()
    28. Do While bProgramRun
    29. d3ddev.Clear(ClearFlags.Target, bkgColor, 1, 1)
    30. d3ddev.BeginScene()
    31. d3ddev.EndScene()
    32. d3ddev.Present()
    33. ' makes windows happy
    34. Windows.Forms.Application.DoEvents()
    35. Loop
    36. End Sub
    37. End Class


    Der Editor (Microsoft Visual Studio) zeigt keine Fehler an, aber wenn ich das Programm debuggen will, zeigt er mir Eine Ausnahme (erste Chance) des Typs "System.IO.FileLoadException" ist in Boundingbox.exe aufgetreten. Ich habe die Referenzen auch gesetzt, musste allerdings manuell importieren, weil er in der Auswahlliste komischer Weise die Direct3D-Libs nicht anzeigt.

    Hat jemand Rat? Ich würde so gerne mein erstes schwarzes D3D-Fenster betrachten :/

    Danke,

    Thilo
    Mit dem Betriebssystem hast du Recht. Ich habe Windows 7 64 bit. Also ich habe jetzt unter Erstellen -> Konfigurationsmanager einmal eine neue Einstellung für x64 und x86 und Any CPU erstellt (es war nur x86 vorhanden). Bei x86 kriege ich den schon erwähnten Fehler. Bei x64 und Any CPU kriege ich System.BadImageFormatException. Das hängt wohl damit zusammen, dass die DirectX-DLLs für 32-bit sind?!

    Eine Sache ist auch, dass ich unter Projekt -> Verweise hinzufügen -> .NET nicht die Microsoft.DirectX... angezeigt bekomme. Ich habe dort, so wurde es bei Google in einem Forum geraten, unter Durchsuchen "Windows/Microsoft.NET/DirectX for managed code/1.0.2902.0" die Dateien hinzugefügt. Dann erkennt er DirectX, aber die Fehler kommen halt immernoch. Was mich auch stutzig macht, sind die Änderungsdaten der DLLs. Umdie 2005. Also anscheinend ziemlich veraltet?! Aber anders kriege ich Visual Studio 2010 nicht dazu, DirectX zu erkennen...

    Ich habe auch schon das DirectX SDK neu installiert und eben auch nochmal Visual Studio 2010 -> gleiche Fehler
    Leider wars das auch nicht. Bei x64 kriege ich weiterhin BadCallException, bei x86 kriege ich bei den anderen Frameworks Microsoft.DirectX.Direct3D.InvalidCallException" ist in Microsoft.DirectX.Direct3D.dll aufgetreten :(


    Jehaw, es hat jetzt geklappt mit Framework 3.5. Ich hatte ein falsches d3dpp.AutoDepthStencilFormat. Vielen Dank!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Thilo87“ ()