Fehler: "Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist."

  • VB.NET

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

    Fehler: "Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist."

    Was kann man bei so einem Fehler machen. Vorher hat es noch funktioniert und jetzt auf einmal nicht mehr.
    Code kann ich nicht posten

    Hm, dann kann die Hilfe leider auch nur sehr oberflächlich erfolgen.
    Wenn es mal geht und mal nicht, liegt es wahrscheinlich daran, dass in bestimmten Fällen die Grenzen eingehalten werden und in anderen nicht. So Fehler schleichen sich z.B. gerne ein wenn Int16 (Short) erwartet wird und Int32 (Integer) übergeben wird. Aber letztendlich ist das alles nur Mutmaßung wenn ich den API-Aufruf im Original und wie dieser von Dir genutzt bzw. befüllt wird nicht sehen kann.
    Generelles Vorgehen: schauen ob die Datentypen die erwartet werden wirklich mit den Datentypen übereinstimmen die Du schickst.

    Gruß FatFire
    In C# gibt es für direkte Speicherzugriffe den Unsafe-Block

    Quellcode

    1. unsafe
    2. {
    3. //...
    4. }

    Also deine Methode etvl. in C# schreiben, in eine DLL packen und in deiner VB-anwendung aufrufen.

    AFAIK ist unsicherer Code in VB.NET nicht möglich.
    Über WinAPI ist das schon möglich... :P

    Aber ich glaube, dass das Problem nur dadurch zustande kommt, dass die Grenzen des zu auslesenden Bereichs überschritten werden(evtl. bei Marshall.copy)..
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    habe ich auch nie behauptet, ich habe behauptet, dass es mit dieser auch in VB Möglich wäre Unsafe zu programmieren ;) Aber wenigstens der Codeteil wäre nicht schlecht, sonst kann man dir ja wohl schwer weiterhelfen...(evtl. bei Bitmap.LockBits?!)
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---