Создание настоящего автономного приложения для Windows XP с MSVC 2010? - PullRequest
0 голосов
/ 10 мая 2010

У меня есть приложение на C ++, использующее только базовый Win32 API (я тоже могу удалить его при необходимости) и C ++ STL. Я использую MSVC и хочу, чтобы он был действительно автономным. Я уже пробовал несколько вариантов (в том числе использование параметра «Многопоточный» вместо «Многопоточный DLL»).

Тем не менее: он пропускает несколько библиотек времени выполнения MSVC на многих компьютерах, в том числе в моей школе.

  • Как я могу создать приложение C ++, способное работать в Windows XP (и ниже / выше, если это возможно), не требуя каких-либо конкретных версий DLL, доступных только с установленными пакетами обновления и исполняемыми DLL-библиотеками?

Должен ли я перейти на G ++?

Мои требования не так уж и велики. Просто небольшой исполняемый файл, размером 35 КБ, содержащий некоторые циклы здесь и некоторые ifs там.

Ответы [ 2 ]

4 голосов
/ 10 мая 2010

Ну, вы уже нашли вариант, который нужно изменить. Щелкните правой кнопкой мыши проект в окне обозревателя решений, Свойства, C / C ++, Генерация кода, Библиотека времени выполнения = / MTd. Полученный EXE-файл зависит только от kernel32.dll, Windows.

Не забудьте также сделать это для конфигурации сборки выпуска. Теперь выберите /MT.

3 голосов
/ 10 мая 2010

Если вы используете статическое связывание для всех библиотек, которые вы используете, вам не нужно никаких библиотек DLL. Вы уверены, что не используете MFC или ATL DLL или что-то еще? Установка библиотеки времени выполнения для «многопоточного» вместо «многопоточного DLL» должна сделать трюк для CRT и удалить любую зависимость от библиотек MSVCRT. В общих свойствах должна быть похожая настройка, например «использовать стандартные заголовки окон».

Если вы используете Visual Studio 2010, для CRT требуется Windows XP SP2 или новее (поэтому RTM или SP1 не будут работать). Если вам нужно настроить таргетинг до XP SP2, вам, вероятно, нужно вернуться к Visual Studio 2008.

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