Announcement

Collapse
No announcement yet.

Runtime-Packages und Runtime-Error 216?

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

  • Runtime-Packages und Runtime-Error 216?

    Hallo,

    beim Umstieg von Delphi 5 Ent. auf Delphi 6 Ent. UP2 geschieht folgendes:

    Ich habe bei den eigenen Packages + der App die ein und anderen Anpassungen gemacht und sie anschließend unter Delphi 6 kompiliert. Die ausführbare EXE basiert auf Runtime-Packages.

    Nun passiert etwas Seltsames: Wenn ich die Anwendung starte, ernte ich einen Runtime-Error 216. Nun habe ich das Problem soweit eingekreist: Kopiere ich die erzeugten Runtime-Packages in den Ordner der EXE, kann ich die Anwendung ohne Probleme starten. Lösche ich diese wieder, so machts boom. Alle Pfadangaben stimmen, es liegen auch keine ominösen Duplikate im Windows- oder System-Ordner.

    Habt Ihr eine Erklärung?

    Stephan

  • #2
    wenn keine Duplikate irgendwo liegen und die Packages im EXE Ordner gelöscht wurden, woher holt sich dann die EXE dieses Packages ?<br>
    Wir haben unsere Packages immer im EXE Pfad liegen, auch die VCL*.?pl's usw. Dies ist einfach sicherer und einfacher fürs Setup.<br>
    Im System könnten durch andere Hersteller Packages liegen die die falschen Versionen haben.<br>
    Einzigste Änderung die durch's Setup gemacht werden muß ist das in der Registry die Standard-Such-Reihenfolge der Pfad zu den Bibliotheken für die Anwendung geändert wird.<br>
    Auf alle Fälle würde eine "Exception" während des Ladeprozesses der Anwendung und ihrer Module einen RuntimeError 216 auslösen.<br>
    Meistens ist irgend ein Code in den Initialization Sektionen der Units Schuld.

    Gruß Hage

    Comment


    • #3
      Hi Hagen,

      thx für Deine Antwort.

      Später liegen alle Packages (die eigenen, die der VCL) mitsamt EXE in einem Ordner. Ich meinte das Starten der Anwendung innerhalb der IDE.

      Unter Delphi 5 keine Probleme, ich habe wie gesagt das Projekt unter Delphi 6 angepasst/kompiliert und dann beim Starten innerhalb der IDE dieses Verhalten festgestellt. Genau diese Frage stellt sich mir: Woher holt sich die EXE die Packages? Kopiere ich die kompilierten Packages in den EXE-Ordner und starte die App innerhalb der IDE, funktioniert alles tadellos.

      Stepha

      Comment


      • #4
        Lösung gefunden (erst denken, dann schreiben):

        Ich habe auf dem Rechner sowohl Delphi 5 als auch Delphi 6 installiert. Im Systempfad befinden sich aufgrund der Installation zuerst die Delphi 5, dananch die Delphi 6 Ordner. Im Delphi5/Projects/Bpl-Ordner lagen noch mit Delphi 5 kompilierte Packages. Nachdem diese gelöscht wurden, läuft alles so wie es soll

        Comment


        • #5
          Um genau dieses Problem zu umgehen, eindeutige Namen für die Package der verschieden Delphi-Versionen vergeben.
          z.B. dspwws5.dpk und dspwws6.dp

          Comment


          • #6
            Dies reicht aber noch nicht so ganz (zur Laufzeit). Am besten alle Packages bei der EXE speichern und den Suchpfad der EXE in der Registry anpassen. Dann werden nur noch diese privaten und geprüften packages geladen. Besser nicht darauf bauen das im Systemordner die korrekten Versionen liegen. (save is safe)<br>

            Gruß Hage

            Comment

            Working...
            X