Ist es möglich, eine Anwendung Windows-Kompatibilitätsmodus zur Laufzeit setzen?
-
19-09-2019 - |
Frage
Wir sind mit einer 3rd-Party-Bibliothek, die manchmal nicht korrekt auf Win7 funktioniert. Wir wissen, wie diese bei der Installation konfigurieren, aber wir möchten auch halten es während der Laufzeit einstellen. Ist dies möglich, oder ist dieser Kontext vor dem Start eingestellt werden muß? (Ich denke, es ist ein schlank zu keiner Chance, aber dachte, ich würde fragen sowieso)
(C ++ Anwendung - nicht, dass es wirklich wichtig ist)
Lösung
Die Kompatibilitätseinstellungen können nicht einmal die Anwendung geändert werden, ausgeführt wird.
Doch was könnten Sie tun müssen, ist eine Launcher-Anwendung, die sicherstellen, dass die Kompatibilitätseinstellungen macht richtig sind, und dann startet die Anwendung. Natürlich müssen Sie sicher, dass die Launcher-Anwendung hat Kompatibilität keine Probleme machen.
Andere Tipps
Die Kompatibilitätseinstellungen sind lediglich Präprozessormakros, dass der Block aus Teilen der Win32-API in den Header-Dateien, die auf der gewählten Plattform nicht verfügbar sind.
Allerdings, da die gesamte API von DLLs zur Verfügung gestellt wird, können Sie bestimmen, welches Betriebssystem zur Laufzeit ausgeführt wird und erhalten dann die notwendigen Plattform-spezifische Einstiegspunkte mit Loadlibrary und GetProcAddress .