Можно ли установить режим совместимости с Windows приложения во время выполнения?

StackOverflow https://stackoverflow.com/questions/1715626

  •  19-09-2019
  •  | 
  •  

Вопрос

Мы используем стороннюю библиотеку, которая иногда работает некорректно на Win7.МЫ знаем, как настроить это во время установки, но мы также хотели бы рассмотреть возможность настройки во время выполнения.Возможно ли это, или этот контекст должен быть установлен до запуска?(Я думаю, что шансов практически нет, но решил, что все равно спрошу)

(Приложение C++ - не то чтобы это действительно имело значение)

Это было полезно?

Решение

Настройки совместимости нельзя изменить после запуска приложения.

Однако вы можете иметь приложение запуска, которое проверяет правильность настроек совместимости, а затем запускает ваше приложение.Конечно, вам необходимо убедиться, что приложение запуска не имеет проблем с совместимостью.

Другие советы

Настройки совместимости — это просто макросы препроцессора, которые блокируют в файлах заголовков части API Win32, недоступные на выбранной платформе.

Однако, поскольку весь API предоставляется библиотеками DLL, вы можете определить, какая ОС работает во время выполнения, а затем получить необходимые точки входа для конкретной платформы, используя Загрузить библиотеку и GetProcAddress.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top