Потратить минуту, чтобы посмотреть свойсва любого exe файла и убедиться, что пользователь может поменять параметры совместимости (Run the program in compatibility mode for [Windows 8]", это нет. А спорить, это да.
Еще раз. Параметры совместимости программы задаются в манифесте (это XML, который обычно помещается в ресурсы приложения, но может быть отдельно). Пользователь, который очень даже причем, может эти параметры поменять. В режиме совместимости некоторые API работают-по другому.
Вот хотя бы онлайн справку по функции API GetVersion почитайте, там написано, что свойства совместимости с конкретной системой (заданные разработчиком либо пользователем) очень даже влияют на ее работу:
Приложения, не манифестированные для Windows 8.1 или Windows 10, будут возвращать Windows 8 версию ОС (6.2). После манифеста приложения для заданной версии операционной системы GetVersion всегда будет возвращать версию, для которую приложение будет манифестировано в будущих выпусках. Сведения о том, как манифестировать приложения для Windows 8.1 или Windows 10, см. в статье Назначение приложения для Windows.
Возможно, есть какие-то различия в реализациях некоторых функций. Выбор может позволить выбрать вместо дефолтной более оптимизированную. Но это на стороне виндоуз, они там могут что угодно делать. А при компиляции никакого знания о версии системы нет и уж, тем более, пользователь не может знать, что там в бинарном файле, чтобы делать какие-то выводы.
Вы потрясающи.
Потратить минуту, чтобы посмотреть свойсва любого exe файла и убедиться, что пользователь может поменять параметры совместимости (Run the program in compatibility mode for [Windows 8]", это нет. А спорить, это да.
Еще раз. Параметры совместимости программы задаются в манифесте (это XML, который обычно помещается в ресурсы приложения, но может быть отдельно). Пользователь, который очень даже причем, может эти параметры поменять. В режиме совместимости некоторые API работают-по другому.
Вот хотя бы онлайн справку по функции API GetVersion почитайте, там написано, что свойства совместимости с конкретной системой (заданные разработчиком либо пользователем) очень даже влияют на ее работу:
Приложения, не манифестированные для Windows 8.1 или Windows 10, будут возвращать Windows 8 версию ОС (6.2). После манифеста приложения для заданной версии операционной системы GetVersion всегда будет возвращать версию, для которую приложение будет манифестировано в будущих выпусках. Сведения о том, как манифестировать приложения для Windows 8.1 или Windows 10, см. в статье Назначение приложения для Windows.
Reply
Возможно, есть какие-то различия в реализациях некоторых функций. Выбор может позволить выбрать вместо дефолтной более оптимизированную. Но это на стороне виндоуз, они там могут что угодно делать. А при компиляции никакого знания о версии системы нет и уж, тем более, пользователь не может знать, что там в бинарном файле, чтобы делать какие-то выводы.
Reply
Leave a comment