Вопрос

У меня есть VS 2008, и я хочу, чтобы мое заявку на работу с Windows 98 без необходимости включать MSVCR90.dll .. Win98 поставляется с MSVCR60, так как я могу сказать MSVC сделать это? Мой единственный вариант охотиться на Visual Studio 6?

Спасибо

* Также я хочу избежать статического соединения MSVCR

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

Решение

Вы не можете сообщить Visual Studio использовать более раннюю версию библиотеки времени выполнения. Даже если вы сможете компилировать со старой библиотекой, сам приложение не собирается правильно запустить, потому что компилятор собирается вставить вызовы на функции, которые он ожидает, что он не должен быть в библиотеке.

Также я хочу избежать статического соединения MSVCR
Почему? Это похоже на совершенно действенное решение этой проблемы. Конечно, вы заплатите около 100 КБ в размере кода для него, но это того стоит, чтобы быть вынужденным использовать багги Visual Studio 6 и несоответствующий компилятор.

Вы также можете просто включить перераспределенную MSVC ++, который будет содержать правильные DLL и не потребует статической связи стандартной библиотеки.

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

Если вы хотите нацелить Windows 98, ваши опции:

  • Во-первых, максимальная версия Visual Studio 2005. 2008 года и штемпель минимальных ОС Ver 5.0 в заголовке EXE - Windows 98 будет просто не загружать двоичные файлы, произведенные VS 2008.

Что касается распределения CRT:

  • Распространите новое время выполнения с вашим приложением. Я предпочитаю этот подход, если ваше приложение имеет много DLL, так как статическое связывание делает все больше, чем должно быть. Кроме того, есть много ограничений для использования C ++ из DLL, которые ослаблены, если вы, по крайней мере, деляете реализацию C-Runtime между всеми модулями в процессе.

Если вы не являетесь «тяжелым» пользователем функций C ++, таких как исключения, и STL, вы сможете вообще сойти с не связанными в любом CRT. В противном случае ваши варианты:

  1. Используйте Non MS Compiler, как Mingw. Mingw использует последний GCC, поэтому вы получаете C99 и C ++ 98, C ++ 03, TR1 и т. Д., И он использует msvcrt.dll. Код :: Blocs - «ОК» IDE, если вы никогда не использовали Visual Sutdio и / или забрали несколько ударов к голове.
  2. Загрузите Windows DDK. Вам нужно будет построить из командной строки и пачкаться с помощью файлов, но его бесплатным, а DDK использует компилятор VS2005, но специально настроен на ссылку против MSVCRT.dll, а не MSVCR80.dll. Слишком рискованно, требуя драйверов устройств, чтобы связать против времени выполнения, которое может быть не там.
  3. Visual Studio 6 Как вариант окончательной неудачи. Ужасная ужасная поддержка C ++ 98. По крайней мере, вы получите симпатичную IDE, и теперь его наплевать, теперь, когда компьютеры теоретически удваиваются в скорости / емкости 8 раз, поскольку она была запущена.

То Низкая накладная Microsoft Visual Studio C Runtime является статически связанным временем выполнения C, что делает максимальное использование доступных DLL уже распределенных с Windows.

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