Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.160 Beiträge
 
Delphi 12 Athens
 
#5

AW: Neue IDE, alter Quellcode, Access Violation

  Alt 22. Dez 2020, 20:58
Zitat:
Laut Anleitung soll ich nur den Haken bei "Mit Laufzeit kompilieren" entfernen und fertig.
Das kommt drauf an, wie die Verwaltung von Speicher und Typen gehandhabt wird.
  • DLL/EXE mit Laufzeitpackage teilen sich den "selben" Kern
    Also Speichermanager und Typen sind die "selben" aus den gleichen System-Units.
    z.B. die Variable FormatSettings aus der SysUtils, da greifen EXE und DLL auf die "gleiche" Variable zu
  • DLL mit ShareMem haben jeder seine eigenen Typen und globalen Variablen, aber den gleichen Speichermanager.
    Hier können Strings (AnsiString und UnicodeString) und sowas wie GetMem übergeben und auf der anderen Seite erstellt/geändert/freigegeben werden.
    z.B. haben EXE und DLL hier jeder ihre eigene Variable FormatSettings (sie ist also doppelt/mehrfach vorhanden)
  • DLL ohne ShareMem hat jeder seine eigene "Delphi"-Umgebung und die andere Seite kann auch in einer anderen DelphiVersion und sogar anderen Sprache ala C++ geschrieben sein.
    Hier kann man also nur WideString, Interfaces oder andere Typen/Funktionen verwenden, welche nicht delphi-spezifisch sind und die somit von Windows behandelt werden.
Einfach so an-/abschalten der Laufzeitpackages ist sogesehn eigentlich garnicht immer möglich.

Mit Laufzeitpackage muß alles mit Der selben Delphi-Verion geschrieben sein. (oft sogar die gleichen installierten Update/Patch/Hotfix)
> also bezüglich "Wenn ich die ursprüngliche .dll nun durch die neue .dll austausche, werden beim Programmschritt, dass das Plugin verwendet, einige Access Violation Fehler ausgegeben"


Zumindestens da ursprünglich nicht "Vor"-Delphi2009 verwendet wurde, sollte es hier wenigstens keine großen Unicode-Probleme geben.
Ich weiß aber grade nicht wann, also ob 2010 oder erst XE, da wurden die Strings nochmal etwas umgebaut.


Was die Windows-Versionen betrifft, da sollte es keine großen Probleme geben.
Da Delphi keine externen Bibliotheken, ala zusätzlicher "Installationen für .NET-Framework, Java-Runtime(JRE) und Dergleichen verwendet,
ist es in Win32 sehr weit kompatibel.
Abwärts gibt es aber Beschränkungen, was hier allerdings egal ist.
Also mit neuem Delphi kompiliert läuft nicht alles in "uralten" Windows-Versionen, da Delphi ab und an auch "neuere" WinAPIs benutzt, die es damals womöglich noch nicht gab.


.NET-Framework: Die kompilierten Programme für Win32 benutzen kein .NET, abgesehn in speziellen .NET-Delphis ala Delphi 8 oder Delphi Prism. (was tot ist)
Nur einige Teile der IDE benutzt/benutzte das .Net-Framwork (z.B. das Refactoring), aber für den Betrieb deiner eigenen Programme ist das egal.




Tja, wenn man Delphi gekauft hat, kann man sich gratis Delphi-Lizenzen für viele Vorgängerversionen besorgen (Delphi 7 und 2006 bis aktuell),
da hätte man jetzt ein Delphi 2010 mit dabei gehabt.




Da wir bis jetzt noch nicht wissen wie das mit den Plugins bei dir aubläuft und was wie gemacht wird, können wir auch nicht so einfach direkt sagen was nun richtig wäre.

Aber grundsätzlich: Du weißt wie man den Debugger benutzt? (um selbst zu versuchen rauszubekommen wo es hängt)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (22. Dez 2020 um 21:07 Uhr)
  Mit Zitat antworten Zitat