Будет ли VS2008 компилировать двоичные файлы, совместимые с Windows 7? - PullRequest
4 голосов
/ 10 августа 2010

Я использую Microsoft Visual Studio 2008 (VC9) для компиляции проекта с файлом .dsw.У меня уже есть 2010 год, и я бы предпочел его использовать, но, похоже, этот dsw был создан для 2008 года.

Я хотел бы скомпилировать и создать двоичный файл, который также совместим с Windows 7. Мои вопросы:

  • если я скомпилирую с 2008, будет ли полученный бинарный файл совместим с Windows 7?Я не уверен, с какой версии VS была запущена поддержка Windows 7.
  • или это не имеет ничего общего с версией VS, а вместо этого связано с Windows SDK?Если это так, могу ли я использовать VS2008 с более новым Windows SDK?

Может кто-нибудь уточнить.

Ответы [ 3 ]

5 голосов
/ 10 августа 2010

У Microsoft есть отличная «история» обратной совместимости, поэтому практически все, что вы компилируете с любой версией Visual Studio / Visual C ++, будет совместимо с Windows 7. То же самое может и не применяться в обратном порядке, т. Е. Если вы используете APIкоторый представлен в Windows 7, ваше приложение выдаст ошибку при попытке запустить его в предыдущих версиях Windows.

Однако следует учитывать несколько моментов:

  • Если проектПервоначально был написан для Windows XP или более ранних версий, он может нарушить UAC
  • . Существуют изменения в структурах каталогов (например, %systemdrive%\Documents and Settings становится %systemdrive%\Users), которые довольно хорошо обрабатываются по ссылке, что Windows 7создает в корне `% systemdrive%, но вы можете нарушить их.
2 голосов
/ 10 августа 2010

VS2010 включает в себя версию 7.0 Windows SDK, а VS2008 - нет.Вам нужен Windows SDK v7.0, если вы хотите, чтобы ваше приложение использовало преимущества функций Windows 7, таких как списки переходов.

Поскольку у вас уже установлен VS2010, вы можете просто изменить пути к включаемому файлу / lib в VS2008 наукажите на Windows SDK v7.0 вместо стандартного, поставляемого с VS2008.Это предполагает, что вам нужна эта версия SDK.

Вам не нужен последний Windows SDK, если вы не планируете использовать новейшие функции Windows 7, такие как ленты и списки переходов.Если вы создаете свое приложение для ОС с наименьшим общим знаменателем (то есть для Windows XP), тогда вам действительно следует использовать VS 2008 с настройками по умолчанию.

Другая проблема заключается в том, был ли изначально написан ваш коддо выхода Windows Vista вполне вероятно, что она не будет работать должным образом в Windows 7, если она не запущена в режиме администратора, чего вам следует избегать.Единственный способ исправить это - переписать большую часть кода, чтобы избежать записи в определенные защищенные каталоги и избежать использования определенных API, для которых требуются права администратора.

0 голосов
/ 10 августа 2011

Windows SDK хорошо совместим с предыдущими версиями. См. отчет о двоичной совместимости между Windows 6.0 и Windows 7.0 для x86_64, сгенерированный инструментом abi-Compliance Checker для подробного сравнения.

Отчеты для других версий Windows находятся здесь: https://abi -laboratory.pro / index.php? View = windows

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...