Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi WideStings konvertierung deaktivieren (https://www.delphipraxis.net/83102-widestings-konvertierung-deaktivieren.html)

ulrich.b 27. Dez 2006 15:37


WideStings konvertierung deaktivieren
 
Kann man die automatische Konvertierung von String in WideString (und umgekehrt) irgendwie deaktivieren? Ich möchte sie ausschalten, um das Migrieren eines Projektes nach Unicode zu vereinfachen, indem mir der Compiler jegliche Verwendung von Strings anzeigt.

Lg Ulrich

himitsu 27. Dez 2006 18:34

Re: WideStings konvertierung deaktivieren
 
Ja, indem du selber für die "Konvertierung" sorgst,

aber was genau möchtest du denn erreichen?

z.B. meint Delphi jetzt X sei ein String/PAnsiChar, obwohl es in wirklichkeit ein WideString/PWideChar ist :angel:

Delphi-Quellcode:
Var S: WideString

X := PChar(Pointer(S))

Wenn du erst in einen anderen Typen konvertierst (Integer, Pointer, oder zumindestens Gleichgroßes),
also nicht direkt AnsiString<>WideString, oder PAnsiChar<>PWideChar, dann führt delphi keine eigenständige Konvertierung durch.

ulrich.b 27. Dez 2006 18:41

Re: WideStings konvertierung deaktivieren
 
Zitat:

Zitat von himitsu
Delphi-Quellcode:
Var S: WideString

X := PChar(Pointer(S))


.... also das iss ja völlig sinnlos!! Tud leid.

Ich möchte einfach die implizite Konvertierung von String nach WideString deaktivieren.
Grund: siehe oben

Bernhard Geyer 27. Dez 2006 19:42

Re: WideStings konvertierung deaktivieren
 
Deaktivieren geht AFAIK nicht. Aber schau mal bei TNTWare. Dort wird die impliziert aufgerufene Methode überschrieben. Mit Jedi+Debuginfo sollte es dir möglich sein die Aufrufenden Methoden zu identifizieren.

ulrich.b 27. Dez 2006 20:06

Re: WideStings konvertierung deaktivieren
 
Zitat:

Zitat von Bernhard Geyer
Aber schau mal bei TNTWare. Dort wird die impliziert aufgerufene Methode überschrieben.

Oh, .. wenn das stimmt würde mir das sehr helfen. Werde mal nachschauen. Danke erstmal! :thumb:

ulrich.b 28. Dez 2006 12:41

Re: WideStings konvertierung deaktivieren
 
Hey! Danke nochmal!!!

Es passiert zwar nicht automatisch, aber in der TntSystem unit gibt es eine InstallTntSystemUpdates() Funktion die eben die WideString - Konvertierungen vornimmt, und so reicht es dass ich einen Breakpoint in die Funktion reinsetze und ich bekomme automatisch jede stelle, an der die implizite Konvertierung stattfindet!

Bernhard Geyer 28. Dez 2006 18:53

Re: WideStings konvertierung deaktivieren
 
Wenn du nur das willst brauchst Du keine TNTWare. Einfach Debug-DCU's anwählen und die entsprechende Funktion in System.pas mit Breakpoint versehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:17 Uhr.

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