![]() |
15 Jahre und niemandem fiel es auf? (Console ohne Manifest)
Vor allem im brutalen Windows 11 fällt es schneller auf, dass dort etwas fehlt und die Anwendung womöglich virtualisiert wird, wenn sie nicht sagt, dass sie kompatibel ist. :wall:
![]() |
AW: 15 Jahre und niemandem fiel es auf? (Console ohne Manifest)
Das habe ich schon bei Windows 7 und Delphi XE oder so gesehen, aber ich habe es halt immer manuell so hinzugefügt, wie ich es wollte. Insofern störte mich das nicht wirklich.
|
AW: 15 Jahre und niemandem fiel es auf? (Console ohne Manifest)
Ich würde das auch allenfalls als Feature-Request einordnen, aber keinesfalls als Bug.
|
AW: 15 Jahre und niemandem fiel es auf? (Console ohne Manifest)
Helft mir mal zum Verständnis: ich arbeite immer mal wieder mit Konsolen-Apps und habe bisher noch keine Probleme festgestellt. Wo würde ich das fehlende Manifest bei einer Konsolen-App denn konkret bemerken?
|
AW: 15 Jahre und niemandem fiel es auf? (Console ohne Manifest)
Seit Windows XP gibt es ein Manifest, innerhalb der EXE.
Anfangs nur zum Aktivieren des XP-Style, drum gern XP-Manifest genannt. Seit Windows mindestens 7 können auch noch immer mehr andere Dinge darin stehen. > HighDPI, MonitorScaling, SupportedOS (mit welchem Windows ist mein Programm kompatibel), Admin oder nicht, DLL-Abhängigkeiten, LongPaths (größer MAX_PATH), ..... ![]() Ohne Manifest würde/könnte Windows davon ausgehen, dass dein Programm uralt ist, noch vor XP (2K, 98, ...) und dann kann es passieren, dass es virtualisiert wird ... wie und was, entscheidet Windows frei nach gutdünken und wie es heute mal Lust hat. Du kennst doch bei Links diesen Kompatibilitäts-Tab, wo man sagen kann Win7, XP, 95, Vista und noch weitere Dinge. Das betrifft aber auch einige WinAPI, wo das Programm womöglich eine ältere Version von SystemDLLs bekommt (besonders die VCL betreffend, z.B. TreeView und TaskDialoge) aber auch, wo im Dateisystem und inzwischen auch der Registry so Einiges in den VirtualStore umgeleitet werden kann kann. und wer weiß was sonst noch |
AW: 15 Jahre und niemandem fiel es auf? (Console ohne Manifest)
JO, grundsätzlich kenne ich das Manifest, hatte das bisher aber immer nur mit Dingen rund um die GUI in Verbindung gebracht. Aber stimmt - VirtualStore und ähnliche Dinge im Dateisystem könnten ein wichtiger Punkt sein.
|
AW: 15 Jahre und niemandem fiel es auf? (Console ohne Manifest)
Wenn ich das richtig sehe, geht es hier ja lediglich um die Default-Einstellung. Schließlich kann man ja problemlos ein Manifest einbinden, wenn das denn benötigt oder gewünscht ist.
Ich persönlich bin da mit Sebastian im selben Boot: In der Regel brauche ich es nicht und wenn, dann aktiviere ich es eben. |
AW: 15 Jahre und niemandem fiel es auf? (Console ohne Manifest)
Jupp, es geht um die Codevorlage/Template, welche Delphi bei Neuerstellung verwendet.
Wir wissen ja, dass viele das natürlich vergessen / meistens nicht dran denken. (mich nicht ausgeschlossen) Konsolenanwendungen werden wohl viel weniger erstellt, als VCL oder FMX, wobei es dort ja schon ewig standardmäßig aktiv ist. Drum war ich auch noch nie auf die Idee gekommen, das zu prüfen, bis es jetzt mal knallte. |
AW: 15 Jahre und niemandem fiel es auf? (Console ohne Manifest)
Danke für die Links. Auch ich denke nicht dran.
Manifeste unter Windows helfen beim Management von Abhängigkeiten und erlauben deren exakte Definition. Klassiker wären beim Betrieb von serverseitiger Software die präzise Definition von Abhängigkeiten von Dynamic Link Libraries. Damit sind Konsolenanwendungen mit von der Partie. Es hilft sogar, das Manifest aus dem Executable auszulagern um Anpassungen nach intensivem Testen an neue DLL Versionen am Server zu 'implementieren' (jetzt nicht im Sinne von programmieren, sondern administrieren), um die geht es in dem Umfeld am Ende. Unter UNIX/Linux kann/muss oder musste, keine Ahnung ob es schon bessere Lösungen dafür gibt, die Abhängigkeiten mittels Kommandozeilen Utility gegebenenfalls bügeln. Vor den Manifesten unter Windows war UNIX/Linux diesbezüglich eher im Vorteil. Lange blieb dieser Aspekt bezüglich Windows Server unter der Decke oder wurde ohne viel Getöse am Netz von Administratoren erfreut zur Kenntnis genommen. Zitat:
|
AW: 15 Jahre und niemandem fiel es auf? (Console ohne Manifest)
Zitat:
Ich bin auch gerade in einer Anwendung darüber gestolpert, dass die Windows-Funktionen GetVersion und GetVersionEx eine veraltete Windows-Version zurückgeben (Windows 8), wenn man kein passendes Manifest eingebunden hat. Das kann sich dann natürlich auch auf eingebundene Bibliotheken auswirken, die dann keine neuen Features von moderneren Betriebsystemen nutzen. Das geht dann aber letztlich vom Programm aus und GetVersion und GetVersionEx sind als "deprecated" dokumentiert. Dass Windows von sich noch weitere Kompatibilitätsfunktionen freischaltet habe ich jetzt nicht gesehen, aber es würde mich sehr interessieren, ob es außer der falschen Versionsmeldung noch weitere Auswirkungen hat. VirtualStore gibt es doch schon länger und wird aktiv, wenn man versucht in Verzeichnisse wie Windows oder das eigene Programmverzeichnis zu schreiben. Solange die Applikation nicht solchen Unfug macht, sollte sich das fehlende Manifest hier nicht auswirken. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:57 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