Announcement

Collapse
No announcement yet.

Fehler..., Bitte dringend um Hilfe

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

  • Fehler..., Bitte dringend um Hilfe

    Delphi5; BDE;<br>

    In unserer Anwendung erscheint nicht immer aber irgendwann auf dem Windowsdesktop die Meldung: "Die Anweisung in "0x0042b8cc" verweist auf Speicher in "0x0042b8cc" Der Vorgang "read" konnte nicht auf dem Speicher durchgeführt werden."<br>
    Nach Bestätigung der Meldung läuft die Anwendung ohne merkliche Probleme weiter. Da die Anwendung eigendlich von keinem Anwender bedient wird stört die Meldung, da diese auf eine Bestätigung wartet.<br>
    Im Debugger erscheint der Fehler nie. Mit "Fehlersuche" in der IDE komme ich auch nicht weiter, da an angegebenen Adressen nicht steht.
    Wenn an dem Rechner niemand angemeldet ist, erscheint nätürlich keine Meldung und die Anwendung läuft ansonsten einwandfrei. Der Versuch, die Meldung mit "setErrorMode" zu unterdrücken, ist auch nicht gelungen. <br>
    Wer kennt eine Möglichkeit, an die Ursache dieser Meldung zu kommen.<br>

    Helmut

  • #2
    Hallo, ich bins selbst,<br>
    dieser Beitrag gehört wahrscheinlich nicht hir hin.<br>
    Der Fehler konnte durch Aufnahme von: "isMultiThread := true" in die ProjektUnit beseitigt werden? Aber warum ?<br>
    Helmu

    Comment


    • #3
      Hallo,

      &gt;Wenn an dem Rechner niemand angemeldet ist,...

      um welchen Anwendungs-Typ (NT-Service, DCOM-Server etc.) handelt es sich, wenn die Anwendung auch ohne interaktiv angemeldeten Benutzer weiterläuft?

      Fall es ein NT-Dienst ist, sind dort automatisch mehrere Threads im Spiel, so dass IsMultiThread auf True gesetzt werden muss. Nur dann schottet sich der interne Speichermanager in einer Delphi-Anwendung threadfest gegenüber anderen Zugriffen ab. Das kostet zwar Performance (aus diesem Grund wird das nicht standardmässig gesetzt), ist jedoch beim Multithreading zwingend notwendig.
      &#10

      Comment


      • #4
        Es handelt sich um einen DCOM-Server,<br>
        initialization<br>
        TComponentFactory.Create(ComServer, TBissManager_,<br>
        Class_BissManager_, ciMultiInstance, tmApartment);<br>
        deiser startet eine ganz normale EXE (CreateProcess). Diese EXE meldet dann die dieversen Fehler!<br>
        Frage, ist dann diese EXE, welche auch mehrmals gestartet sein kann, eine Multithread-Anwendung??<br>
        Helmu

        Comment

        Working...
        X