Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Lokale Kopie von System.Variants.pas einbinden und nutzen, geht das? (https://www.delphipraxis.net/214139-lokale-kopie-von-system-variants-pas-einbinden-und-nutzen-geht-das.html)

Rollo62 22. Nov 2023 20:03

Delphi-Version: 11 Alexandria

Lokale Kopie von System.Variants.pas einbinden und nutzen, geht das?
 
Hallo zusammen,

wie oben beschrieben, möchte ich System.Variants.pas lokal unter das Projektverzeichnis kopieren und einbinden.
Damit möchte ich Loggingfunktionen einbauen, um unter Android mehr Fehler-Hinweise zu bekommen.
Leider ist das Debugging unter Android nicht richtig nutzbar, deshalb muss ich mich mit intensivem Logging versuchen.

Bei den meisten Units funktioniert die lokale Kopie ja sehr gut, nicht aber mit den System-Units, wie System.Variants.pas.
Die Meldung die ich bekomme ist
Zitat:

[DCC Fatal Error] System.VarUtils.pas(1219): E2158 System.Variants unit out of date or corrupted: missing '@VarToInteger'
Ich glaube ja, dass man von manchen System-Units keine lokale Kopie nutzen kann, weil die da tief in Assembler und Pointer verstrickt sind.

Wovon hängt die Nutzung ab, gibt es da klare Regeln, was geht und was nicht geht?
Geht es mit einem Hack (Trick) eventuell doch irgendwie?
Dann wäre ich über eine kleine Hilfestellung sehr dankbar.

Uwe Raabe 22. Nov 2023 20:50

AW: Lokale Kopie von System.Variants.pas einbinden und nutzen, geht das?
 
Bekommst du die Meldung auch wenn du die originale Unit lokal ablegst oder erst wenn du sie änderst?

himitsu 22. Nov 2023 21:33

AW: Lokale Kopie von System.Variants.pas einbinden und nutzen, geht das?
 
Normal werden die Delphi-Units vorkompiliert genutzt (DCU)
womit andere "Delphi"-Units natürlich nicht deine Kopie benutzen, aber falls es doch genutzt wird, dann kann es zu Konflikten mit der originalen Unit (DCU) kommen, wenn deine PAS eingebunden wird, aber etwas gleichzeitig auf Teile der anderen Unit referenzieren.

Uwe Raabe 22. Nov 2023 21:58

AW: Lokale Kopie von System.Variants.pas einbinden und nutzen, geht das?
 
In der Regel kann man das schon machen, wenn man keine Änderungen im interface Teil der Unit vornimmt.

Rollo62 23. Nov 2023 08:29

AW: Lokale Kopie von System.Variants.pas einbinden und nutzen, geht das?
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1529975)
Bekommst du die Meldung auch wenn du die originale Unit lokal ablegst oder erst wenn du sie änderst?

Ja, das passiert auch unverändert.
Allerdings habe ich den Schreibschutz entfernt.
Ändern würde ich nur im implementation Teil.

Uwe Raabe 23. Nov 2023 09:33

AW: Lokale Kopie von System.Variants.pas einbinden und nutzen, geht das?
 
Passiert das mit und ohne Debug-DCUs?

DenkDirNix 23. Nov 2023 10:15

AW: Lokale Kopie von System.Variants.pas einbinden und nutzen, geht das?
 
Hast Du die Unit eventuell aus einer älteren Delphi-Version heraus kopiert und nicht aus der mit der Du übersetzt?

Uwe Raabe 23. Nov 2023 10:47

AW: Lokale Kopie von System.Variants.pas einbinden und nutzen, geht das?
 
Also ich kann das hier problemlos machen.

Oder hast du in deinem Projekt zufällig ein
Delphi-Quellcode:
GENERICVARIANTS
in den Defines? Denn nur dann wird ein
Delphi-Quellcode:
uses System.Variants
in
Delphi-Quellcode:
System.VarUtils
aktiviert.

Rollo62 23. Nov 2023 19:03

AW: Lokale Kopie von System.Variants.pas einbinden und nutzen, geht das?
 
Ich habe das in einem größeren Projekt versucht, ich versuche es morgen nochmal mit einem leeren Projekt.
Die normalen Debug-DCU's sind aktiv, es ist nichts an den Settings verstellt, ich kann also den Source normal debuggen.
Nein, ist auch nicht aus einem älternen Projekt, sondern aus dem Delphi/Source Verzeichnis, mit dem ich auch testen möchte.

Rollo62 24. Nov 2023 12:18

AW: Lokale Kopie von System.Variants.pas einbinden und nutzen, geht das?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Uwe,

ich habe es nochmal mit einem ganz leeren Projekt versucht, nur die System.Variants Unit lokal.
Das kompiliert nicht bei mir, weder für Win32 noch für Android32/64.

Immer mit dem Fehler
"[dcc32 Fatal Error] System.Variants.pas(1271): E2158 System.Variants unit out of date or corrupted: missing '@VarCast'"

Falls das so, ohne weiteres bei Dir kompiliert, dann wüsste ich gerne warum das hier nicht funktioniert.
Ich habe eigentlich ein ziemlich natives RadStudio 11.3, mit nur ein paar Tools geladen (TestInsight, Kastri ) sonst eigentlich nur Sourcen.

Der ursprüngliche Grund, warum ich das laden wollte, hat sich mittlerweile erledigt.
Allerdings wäre es interessant zu wissen warum es mal geht und mal nicht.

Hier ist mein minimales Testprojekt:
Anhang 56462


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:39 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz