Программирование для Windows без распространяемого файла

Это мог бы быть глупый вопрос, но все мои попытки погуглить отказавший. Вопрос: Как можно разработать приложения Windows, для которых не нужен предварительно установленный распространяемый файл? Я хочу создать приложения, которые работают также под более старыми версиями Windows, которые не имеют Платформы.NET, или что-то подобное включало.

Спасибо, eWolf

5
задан eWolf 22 December 2009 в 13:30
поделиться

5 ответов

Во-первых, программа на родном языке, например, C++, без CLR.

Во-вторых, отключите манифест и избегайте линковки внешних DLL (например, STDC или MFC).

.
7
ответ дан 18 December 2019 в 09:50
поделиться

Используйте Delphi - хотя в более новых версиях IDE есть некоторые странные ошибки, легко создавать собственные приложения Windows, которые не нуждаются в распространяемом пакете. Намного проще в использовании, чем C ++ / win32.

3
ответ дан 18 December 2019 в 09:50
поделиться

Что вы имеете в виду под старыми версиями Windows?
Структура .net является частью Windows начиная с Windows 2003 и .net 1.1
. Так что если вы нацелены на Windows версии, более новые, чем Windows 2003, вы можете быть уверены, что .net доступен.

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

Обновление:
Я только что узнал, что Mono позволяет вам компоновать все время выполнения в ваш исполняемый файл.
Обновление:
Я только что узнал, что Mono позволяет вам компоновать все время выполнения в ваш исполняемый файл.
Они называют эту функцию Bundle .
Подробнее об этом читайте здесь .

.
4
ответ дан 18 December 2019 в 09:50
поделиться

Правка: Как отметил eWolf, ему не нужен .NET, несмотря на то, что исходный вопрос помечен как .NET.

Короче говоря, на некоторых старых машинах, таких как Win95/98/2000, может не быть установлено время выполнения. Поскольку вы указали .NET, я предполагаю, что вы хотите построить приложение с помощью .NET, есть большой, но вам нужно заранее установить время выполнения .NET, чтобы можно было запустить .NET приложение. Вы можете легко обойти это двумя способами:

  • Установить время выполнения .NET вручную или
  • Использовать пользовательский сценарий установки, который может определить, установлена ли среда выполнения .NET или нет, для установки среды выполнения .NET, доступной для повторного распространения.

Если вы говорите о родном приложении, таком как C/C++, то лучший путь (чтобы избежать зависимостей и свести к минимуму количество требуемых DLL) - это разработать его в необработанном WinAPI32, используя только стандартные DLL, которые есть у многих Windows-машин, COMMCTRL.DLL, USER32.DLL, ADVAPI.DLL, чтобы назвать лишь некоторые из них. В результате получится исполняемый файл меньшего размера. Конечно, вы можете объединять другие DLL-библиотеки, статически связывая их вместе, чтобы сформировать один большой исполняемый файл мамонта.

.
2
ответ дан 18 December 2019 в 09:50
поделиться

Я рекомендую использовать WTL, который является легковесным C++ фреймворком. На самом деле это всего на один шаг выше Win32 API, так что вы получаете маленькие EXE с небольшим количеством зависимостей. WTL требует ATL фреймворк, с которым вы можете статически связываться, то есть вам нужно только отправить ваш EXE.

Другой фреймворк, на который стоит обратить внимание, это Qt. Однако, это требует от вас поставки некоторых DLL с вашим приложением. Qt - фантастический фреймворк, и я думаю, что вы найдете его более продуктивным, чем WTL (в зависимости от потребностей вашего приложения, конечно же)

.
1
ответ дан 18 December 2019 в 09:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: