Shockwave Objekt löst Access Violation aus

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Xylon.

    Shockwave Objekt löst Access Violation aus

    Moin moin,

    ich habe eine kleine Anwendung geschrieben die es meinem Team und mir erleichtern soll Flash Dateien für unser Videospielprojekt (interaktive Menüs) abzuspielen und durchzuprüfen, bevor wir sie einbinden. Ja ich weiß es gibt andere Flash Player, aber das ist nur eine von mehreren Tools für uns.
    Eigentlich funzt auch alles wunderbar, nur stürzt die Anwendung bei bestimmten Menüs ab, sobald ich einen der Buttons klicke. Als Fehler wird mir dann Access violation in System.Windows.Forms.dll ausgegeben unter der Meldung, es würde auf geschützen Speicher zugegriffen werden. Also wie ich erfahren habe greift das Flash Objekt wohl auf nicht allzu wenig RAM zu, allerdings verstehe ich nicht, wie es sein kann, dass dieser Fehler nur bei bestimmten Menüs passiert. Denn prinzipiell sind sie alle auf dem gleichen Wege erstellt worden (sogar auch mit Adobes Animate CC bzw. Flash Pro wie es damals noch hieß). Dachte erst vielleicht braucht der nur Adminrechte, aber das scheint's wohl nicht zu sein. Hat jemand eine Idee, wie diese Ausnahme entsteht? Im Netz habe ich jetzt nicht so viel in Zusammenhang mit dem Flash Objekt gefunden...

    Zum aufrufen/abspielen nutze ich ganz einfach

    VB.NET-Quellcode

    1. FlashPlayer.Movie = "*Pfad*"


    Viel mehr Code für den Player ist nicht drin.


    Bin für jede Hilfe dankbar :thumbup:

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

    Xylon schrieb:

    Denn prinzipiell sind sie alle auf dem gleichen Wege erstellt worden (sogar auch mit Adobes Animate CC bzw. Flash Pro wie es damals noch hieß)
    Sind die Menüs mit XAML definiert (also das ganze ein VB.NET WPF Projekt)?

    Ansonsten, einfach mal nen Profiler drüber laufen lassen und schauen, ob da (und vor allem wie viel) unmanaged Memory da allokiert wird. AFAIK gibte s auch einen kostenlosen - mir ist nur leider der Name entfallen - der auch auf der BASTA! gezeigt und von Mirosoft intern als Profiler für Office, Windows und das ganze Interne Zeug verwendet wird; kann sowohl managed als auch unmanaged profilen.
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell

    Xylon schrieb:

    es würde auf geschützen Speicher zugegriffen werden
    Überprüf mal x86 <=> x64.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Überprüf mal x86 <=> x64.


    Habe ich versucht, ist bei beidem derselbe Fehler...


    Radinator schrieb:

    Sind die Menüs mit XAML definiert (also das ganze ein VB.NET WPF Projekt)?



    Da gehe ich stark von aus, schließlich weiß das Team welche IDE verwendet wird. Ich such dann mal weiter nach der Ursache.. :whistling:
    Kleines Update falls jemand das Gleiche Problem hat: Ich habe lange debuggt um es rauszufinden, aber anscheinend hat das Plugin ein Problem damit wenn in der selben Flash file zwei mal das Play Event stattfindet, sprich: Menu A auf Button geklickt, zu Menu 2 gewechselt, zurück zu Menu A -> erneutes Klicken eines Buttons löst Play Event aus und lässt die Anwendung abstürzen. Durch ein manuelles .Play() beim Laden jeder file wird dies vorgebeugt, allerdings wird dann immer automatisch der erste Button im Menu geklickt. Allerdings lässt sich das höchstwahrscheinlich in der file selbst anpassen.

    Von daher alles super :thumbsup: Danke trotzdem für die Versuche