![]() |
AW: Versionsinformationen werden nicht mit in die Exe übernommen
Zitat:
Es gibt aber schon eine Möglichkeit, eine solche Warnung lokal zu unterdrücken ohne die gleich ganz abzuschalten:
Delphi-Quellcode:
{$WARN NO_RETVAL OFF}
Function test(a:boolean):Integer; Begin If a then result := 1; end; {$WARN NO_RETVAL DEFAULT} |
AW: Versionsinformationen werden nicht mit in die Exe übernommen
Wobei der Integer in dem Fall des Integers halt wirklich nicht initialisiert sein kann
und beim nichtvorhandenen ELSE zufällig sein kann. Andersrum ist es schlimmer. Per se ist der Result als String immer initialisiert, aber nicht in der Funktion, sondern beim Aufrufer, wo er dann z.B. in einer Schleife initial nicht '' sein kann. Bei gemanagten Typen wird "intern" aus dem Result ein OUT- VAR-Parameter und außerdem sind gemangte Typen immer mit "0" initialisiert. (WideString, LongString, Variant, dynamische Array, Interface und ordentlich geschriebene Custom-Managed-Records)
Delphi-Quellcode:
function Test(a: Boolean): String;
// wird zu procedure Test(a: Boolean; var Result: String); Wir hatten im XE einen Fall, wo sich der Compiler in einer Verschachtelung aus Try-Finally, Try-Except, If-Then-Else-If-Then-Else-If-Then-Else-... und Case mit Exit und Abort/Raise durcheinander kam und nachfolgend meinte die lokale Integervariable könne uninitialisiert sein, drum wurde dort ein :=0 am Anfang eingefügt, was dann D10+ aber anders sah und richtig erkannte, dass bis zur Auswertung es in allen Pfaden gesetzt wird, oder es via Exit/Raise vorher rausspringt. Im Windows64-Compiler gibt es jetzt teilweise Zustände, wo ein Boolean-Result immer automatisch initialisiert ist scheint ... nja, wenn du schaust immmer, aber eigentlich fast immer, weil du zufällig den einen Abweichenden von Tausenden/Millionen Durchgängen nicht siehst. |
AW: Versionsinformationen werden nicht mit in die Exe übernommen
Zitat:
danke. außer NORETVAL gibts sicher für jede warnung einen wert oder? Weißt du wo die liste zu finden ist? |
AW: Versionsinformationen werden nicht mit in die Exe übernommen
Stehen alle in der Hilfe. :angle:
Und wie gesagt, ist DAS hier auch keine Lösung. Die Lösung ist den Wert zu initialisieren, entweder vorher oder im Else, da die Funktion sonst mehr dem Russisch Roulette entspricht. |
AW: Versionsinformationen werden nicht mit in die Exe übernommen
Zitat:
Zum Glück sind diese Fälle einigermaßen selten. |
AW: Versionsinformationen werden nicht mit in die Exe übernommen
Zitat:
![]() |
AW: Versionsinformationen werden nicht mit in die Exe übernommen
Zitat:
|
AW: Versionsinformationen werden nicht mit in die Exe übernommen
In anderen Sprachen gibt es dafür Pragmas, die man einem "angemeckerten" Statement einfach als Art Kommentar nachstellt. Aber mit einem relativ doofen Single Pass Compiler geht das halt nicht.
|
AW: Versionsinformationen werden nicht mit in die Exe übernommen
Bitte nochmal zurück zum Thema.
Ich habe hier mit Delphi 12.1P1 gerade das gleiche Problem, daß die Versionsinformation nicht korrekt übernommen wird. Es gibt ja die Auswahl für "debug", für "release" und "für alle Konfigurationen"! Ich habe sie auf "für alle" eingestellt, Dateiversion und Produktversion auf den selben Wert gesetzt (nur zur Sicherheit), und bei der Ausführung lese ich dann im Programm diesen Wert ein... - da steht dann nur "1.0.0.0", das steht so aber nicht in der eingestellten Konfiguration! Im Projekt steht das {$R *.res} drin und im Pfad ist nur 1 .res-Datei, die vom Delphi beim compilieren aktuell angelegt wurde (hab sie extra zuvor gelöscht). Manifest hab ich "Automatisch erzeugen" (für alle Konfigurationen) eingestellt. Und warum ist die Sprach-ID eigentlich immer auf $409 English eingestellt? Windows ist Deutsch, IDE ist deutsch, meine Programme sind für deutsche Nutzer - also stelle ich es hier auch deutsch $407 ein. Aktuell builde ich es als Debug ("alle Konfigurationen" sollte ja trotzdem klappen!?). Wie bringe ich jetzt Athens dazu, diese in den Projektoptionen wichtigen Daten auch in die Exe hineinzuschreiben? Oder liegt hier ein weiterer Bug (Feature) vor, weil es durch einen Schalter an irgendeiner irreführend schlecht übersetzen Stelle einen Schalter dafür gibt, zusätzlich zu dem aktivierten "Versionsinformationen in das Projekt übernehmen"?? |
AW: Versionsinformationen werden nicht mit in die Exe übernommen
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Genau dafür gibt es eine Einstellung im ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:49 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 by Thomas Breitkreuz