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), .....
https://learn.microsoft.com/de-de/wi...tion-manifests
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