![]() |
Units mit gleichem Namen (System.Hash und Hash)
Moin,
Seit XE8 gibt es eine Unit "System.Hash". Ich habe jetzt ein paar Berichte, daß meine Opensource Unit Hash (die seit über 13 Jahren im Einsatz ist und ständig weiterentwickelt wird) nicht erfolgreich benutzt werden kann (zB Fehler E2003 Undeclared identifier: THashContext). Da ich selbst nur bis XE4 teste, kann ich das nicht nachvollziehen. Aber: Es sollte doch eine Möglichkeit geben, die Unit Hash ohne "System" Namespace zu benutzen eventuell mit
Delphi-Quellcode:
uses System.Hash, Hash, ...;
oder kann man die Suchreihenfolge irgendwie anders festlegen (wenn ja wie und wo)? Die letzte Möglichkeit, meine Unit umzubenennen oder gar mit Namespace zu verzieren, möchte ich vermeiden, weil das wiederum das Kompilieren vieler vorhandener Programme (die ältere Delphis, Free Pascal, VirtualPascal benutzen) unmöglich macht. Also zusammenfassende Frage: Wie kann man eine eigene Unit Hash mit System.Hash zusammen benutzen? Gruß Gammatester |
AW: Units mit gleichem Namen (System.Hash und Hash)
Zitat:
Das kann allerdings wieder zu anderen Problemen führen. Wenn z.B. deine Unit Hash die System-Unit SysUtils verwendet, dann muss diese als System.SysUtils ausgeschrieben werden, da sie ohne die besagten Gültigkeitsbereichsnamen sonst nicht gefunden wird. Das kann übrigens auch für andere Bibliotheken gelten, die diese Gültigkeitsbereichsnamen voraussetzen. |
AW: Units mit gleichem Namen (System.Hash und Hash)
Solche sehr allgemeinen Unitnamen sind eben ungünstig.
Einzige Möglichkeit wäre den Namespace System im Projekt zu entfernen. Aber erstens geht das auch nur manuell und ist bei jedem Projekt notwendig und zweitens macht es in der Regel keinen Sinn. Da ist die Umbenennung der Unit einfacher. |
AW: Units mit gleichem Namen (System.Hash und Hash)
Und wenn du die Unit nur für die entsprechend betroffenen Versionen umbenennst? Oder eine Legacy Version anbietest?
|
AW: Units mit gleichem Namen (System.Hash und Hash)
Zitat:
Zitat:
|
AW: Units mit gleichem Namen (System.Hash und Hash)
Bei eigenen Units setze ich imme rmeinen Kürzel vor den Namen. In diesem Fall wäre das dann MPHash. Dann sehe ich schon am Namen, das sich den Code in der Unit verbrochen habe.
|
AW: Units mit gleichem Namen (System.Hash und Hash)
Zitat:
Zitat:
Wenn deine Unit nun diesen Einsatz (und sei es nur für System) verbietet, gibt es eine Kollision. Um das Problem dauerhaft und ohne Klimbzüge des Anwenders aus der Welt zu schaffen, plädiere ich daher für die Umbenennung deiner Unit. Du kannst ja die Compilierfähigkeit der alten Projekte durch einen geeigneten Unit-Alias wieder herstellen. |
AW: Units mit gleichem Namen (System.Hash und Hash)
Zitat:
|
AW: Units mit gleichem Namen (System.Hash und Hash)
Zitat:
Weiterhin weiß ich nicht, was die neuen Delphis machen, wenn man /AHash=MyHash verwendet, würde da nicht das gleiche Problem auftauchen? |
AW: Units mit gleichem Namen (System.Hash und Hash)
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:44 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