Leave a comment

tlkh July 13 2024, 08:48:25 UTC

Вы потрясающи.

Потратить минуту, чтобы посмотреть свойсва любого 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

melon_mask July 13 2024, 09:01:20 UTC

Возможно, есть какие-то различия в реализациях некоторых функций. Выбор может позволить выбрать вместо дефолтной более оптимизированную. Но это на стороне виндоуз, они там могут что угодно делать. А при компиляции никакого знания о версии системы нет и уж, тем более, пользователь не может знать, что там в бинарном файле, чтобы делать какие-то выводы.

Reply


Leave a comment

Up