Какой язык программирования / компилятор / библиотеки я должен использовать для создания приложения, работающего на Windows XP без какого-либо дополнительного программного обеспечения? - PullRequest
2 голосов
/ 03 июня 2010

Мне нужно создать базовое приложение, чтобы проверить наличие компонентов и при необходимости загрузить их на любой компьютер под управлением Windows XP или выше. Какой язык (желательно бесплатный или VS 2010) следует использовать для создания такого приложения, которое может работать без предварительной установки каких-либо платформ?

Ответы [ 3 ]

2 голосов
/ 03 июня 2010

не могли бы вы уточнить? Под статической библиотекой вы подразумеваете dll, которая должна находиться рядом с exe? или вы ссылаетесь на доступные dll в windows / system32? Кроме того, потребуются ли программы, скомпилированные с использованием этого метода, «Visual C ++ Redistributable»?

Когда исполняемый файл C ++ ссылается на статическую библиотеку, компоновщик включает объектный код библиотеки в тот же файл, что и EXE-файл. В результате получается один файл *.exe, и библиотеку не нужно отправлять как отдельный *.dll.

DLL в windows / system32 обычно являются файлами O / S. Они O / S-специфичные. Вы можете / должны / не отправлять / распространять эти файлы (Microsoft делает). Ваш EXE (или, например, библиотека времени выполнения C, с которой вы статически связаны) зависит от (требует) некоторых функций, которые экспортируются из этих DLL. Эти библиотеки O / S имеют тенденцию к обратной совместимости, поэтому, если вы ориентируетесь на API O / S, существующий в XP, ваш код также будет работать в Vista.

Я предполагаю, что под «Visual C ++ Redistributable» вы подразумеваете «библиотеку времени выполнения Visual C», имя файла DLL которой выглядит примерно так: msvcrt80.dll. Это то, о чем я говорил в моем первом абзаце: если вы выбираете опцию сборки (доступную в разделе project / properties) для статической ссылки на библиотеку времени выполнения C, то требуемый код статически связан с вашим EXE-файлом не требует (не ссылка на время выполнения) этой DLL.

1 голос
/ 03 июня 2010

Visual C ++ 6 с MFC. Если вы используете более позднюю версию Visual C ++, тогда вашим целевым объектам Windows XP потребуются библиотеки для них.

Редактировать: в комментариях отмечалось, что библиотеки CRT и MFC могут быть статически связаны даже в более поздних версиях. Это верно, и я забыл.

0 голосов
/ 03 июня 2010

Хотя это и не предназначено специально для этого, я рекомендую InnoSetup для настройки загрузчиков. Он не требует никаких библиотек, предоставляет функциональность для общих требований установки и имеет PascalScript для его расширения. Доступно множество плагинов, и вы можете делать все, что угодно, используя собственный скрипт (в основном, как Delphi). PascalScript может импортировать функции API, поэтому вы можете делать что угодно. С InnoCallback вы можете даже получить обратные вызовы от API - я использовал это для загрузки множества настроек MSI в один пакет с использованием MSI API.

Если вы загрузите его, получите пакет QuickStart, который включает в себя хороший редактор и препроцессор InnoSetup.

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