Announcement

Collapse
No announcement yet.

Methodenaufruf für ungültiges Objekt

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

  • Methodenaufruf für ungültiges Objekt

    Ciao

    Ich habe ein MDI Projekt. Wenn ich ein neues Child Form öffne erhalte ich mit Codeguard folgende Fehlermeldung.

    Methodenaufruf für ungültiges Objekt
    Es wurde versucht, auf 8 Byte(s) bei 0x00000000 zuzugreifen.
    0xEEEEEEEE
    db_pipe::get_stimme()
    Tf_child_form::FormCreate(const System::TObject *)
    0x40053323
    0x4005301F
    TMain_Form::act_neuExecute(const System::TObject *)
    0x4003126E

    Die Situation ist die folgende. Vom Child-Form aus greife ich auf eine Datenbank zu. Der Datenbankzugriff wird mit der Klasse pipe gekabselt. Beim zugriff auf die Datenbank geschiet dieses Problem. Ich habe lange getüftelt aber ich komme nicht dahinter was das Problem ist.
    Das Programm läst sich sonst ohne Probleme kompilieren und ausführen.
    Kann mir da jemand weiterhelfen?

    Gruss Renato

  • #2
    <PRE>

    Hi Renato!

    1. Code Guard kannst du manchmal in die Tonne
    treten. Hört flöhe husten.
    Kannst du auch testen mit AnsiStrings, da
    meckert er auch nur rum das er speicherlecks
    hat.

    2. Versuche mal den Zugriff auf die DB erst
    wenn dein Child sichtbar ist.

    Nicht alle Fehlermeldungen von CG solltest
    du ernst nehmen.
    Zur Sicherheit kannst du aufrufe der fehler-
    meldungen in try catch legen, damit evt.
    doch auftretene sachen abgefangen werden.

    Gruß Fred

    </PRE&gt

    Comment


    • #3
      Hallo Renato,

      das sieht fast so aus, als wäre das DB-OBjekt zum Zeitpunkt des Aufrufes nicht instanziert.

      Deshalb läßt sich das Projekt auch kompilieren und ausführen. (ob ein Objekt einen gültigen Zeiger hat, oder nicht ist dem Compiler herzlich egal...)

      Was hat das db_pipe::get_stimme() zu bedeuten? Steht das so in Deinem Code? M.E. muß das über db_pipe->get_stimme() erfolgen.

      Erzeugst Du für jedes neue MDI-Child auch eine neue Instanz des DB-Objektes?

      Grüße

      Joche

      Comment


      • #4
        Ciao
        Herzlichen Dank für eure Hilfe. Ob CG wirklich so schlecht ist weiss ich nicht. Ich habe nun für jedes Child eine eigene Instanz der Klasse db_pipe erstellt. Siheda die Fehlermeldung verschwand. Offenbar wollte ich etwas sehr hässliches machen und CG hat mich wieder auf den Pfad der Tugende gebracht

        Gruss Renat

        Comment


        • #5
          Hi Renato,

          also ich habe keine Probleme mit CG. Wenn er bei mir aber was angemeckert hat, dann war es tatsächlich immer meine Schusseligkeit. ;-)

          Und Probleme des CG in Verbindung mit AnsiString sind mir bisher auch nicht aufgefallen.

          Grüße

          Joche

          Comment

          Working...
          X