Announcement

Collapse
No announcement yet.

Zugriffsverletzung beim Aufruf einer DLL bzw. beim beenden der DLL

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zugriffsverletzung beim Aufruf einer DLL bzw. beim beenden der DLL

    Ich habe Probleme beim Aufruf einer DLL mit umfangreichen Formularen in denen auch Sound abgespielt wird.
    Manchmal bekomme ich eine Zugriffsverletzung in verschiedenen Addressbereichen. 20 mal ist es okay, dann auf einmal nicht mehr.
    Gibt es unter Delphi 4 eine Möglichkeit des Speicherhandlings mit DLL oder wie kann ich das Problem lösen?

  • #2
    Hallo,

    von wo aus wird auf die DLL zugegriffen - handelt es sich nur um Delphi-Anwendungen? Welche Datentypen werden in den exportierten DLL-Funktionen als Parameter verwendet? Wie sieht eine "fehlerhafte" DLL-Funktion aus

    Comment


    • #3
      Hallo Andreas,

      Es wird von einer Delphi Anwendung darauf zugegriffen, ist ein Grafikadventure.
      Bei den ca 20 Funktionen, die jeweils ein Formular aufrufen, werden nur Integer und Boolean übergeben, maximal in einer Funktion 6 Parameter, aber nur Integer.
      Das seltsame ist, beim ersten start ist alles okay.
      Dann Formular beenden, dann starten und der Fehler kommt, dann nie wieder bei diesem Formular, egal wie oft man zugreift

      Comment


      • #4
        Hallo,

        wie sieht die Schnittstellenprozedur der DLL aus, die vom Anwendungsprogramm aufgerufen wird? Wann wird das Formular erzeugt bzw. freigegeben

        Comment


        • #5
          Hallo Herr Kosch,

          das Problem ist gelöst, es war ein Laufzeitfehler.
          Dieser Effekt trat auf, weil ein Teil eines Formulares schon angesprochen wurde, obwohl das formular noch nicht erzeugt worden ist.

          Seltsamerweise, funktionierte dieser Aufruf bei erstenmal immer,
          jedoch nach verlassen der Dll und erneutem Aufruf der gleichen funktion, kam der Fehler.

          PC's sind halt manchmal unlogisch.

          Danke für die Bemühungen.

          A.Weile

          Comment


          • #6
            Hallo,

            "unlogische" Rechner gibt es nicht ;-) <br>
            Das Problem mit nichtinitialisierten Zeigern (und um diese handelt es sich bei den Delphi-Referenzen auf Formulare) besteht darin, das man niemals genau sagen kann, auf welche Speicherbereiche diese gerade zeigen. Wenn dort "nichts wichtiges" rumliegt, macht sich dieser Fehler nicht sofort bemerkbar

            Comment

            Working...
            X