![]() |
|
![]() ![]() ![]() |
|
Zyxel |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 29.4.2011 Репутация: нет Всего: нет |
Есть проект, поддерживющий работу с большим количеством устройств. В папке с exe'шником проекта находятся dll'ки - драйвера
устройств. Помимо того, что это просто неудобно, при переносе на др. компы возникают еще и проблемы со студийными библиотеками типа msvcr*.dll Работаю c VC++ 2005. Подскажите, как сделать, чтобы exe файл проекта был автономен и не требовал наличия dll в своем каталоге? ну...что-то типа этого... http://fallengamer.livejournal.com/69536.html вроде то, что нужно, но ничего не понятно Это сообщение отредактировал(а) Zyxel - 26.8.2011, 21:04 |
|||
|
||||
kiler4747 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 28.2.2011 Репутация: нет Всего: нет |
Создай инсталлер. В студии при выборе типа проекта выбрать Другой тип проекта, а там установка. (VC++2010)
|
|||
|
||||
Zyxel |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 29.4.2011 Репутация: нет Всего: нет |
Если правильно понимаю, инсталлер просто установит exe-файл и необходимые для его работы dll. Это и так скопировать можно.
Вопрос в том, как все это интегрировать в один исполнимый файл? Руководство именно так поставило задачу. Я еще сама не разобралась насколько это целесообразно ... инфа по этому вопросу какая-то обрывочная( |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 4 Всего: 85 |
Zyxel, нужно проект собирать статически. Для этого нужны все исходники dll. Собираете их как статические либы. Подключаете их к своему проекту, и компилируете в один исполнимый файл. Если исходников dll нет, ничего не выдет. Хотя видел где-то трюки с объединением dll с исполнимым файлом в один екзешник, но это хак., и в серьезном проекте такое делать не рекомендую. Полюбому, ничего путевого не выдет из этого ... И к С++ это никокого отношения не имеет. |
|||
|
||||
Zyxel |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 29.4.2011 Репутация: нет Всего: нет |
обычно так и делаю, но в данном случае большинства исходников dll нет... Таскать за собой либы совершенно нормальный подход, тем не менее если нельзя все объединить в один ехе-шник, мне нужно аргументированно объяснить руководителю почему. Он уверен в обратном. В нете эта тема широко не обсуждается, тем не менее то, что нашла крутится вокруг платформы .NET: сборки, РЕ-файлы (portable executable)... цитирую статью(ссылка на статью в первом посте) "...В статье рассказывается, как создавать такие автономные программы из одного файла. Разобран пример как со сжатием зашить библиотеку AutoMapper в программу и как ее потом достать и использовать... ...Итак, у нас есть работающий проект, использующий сторонние библиотеки. Хочется, чтобы exe файл проекта был автономен и не требовал наличия зависимых dll в своем каталоге.Полученную ранее архивированную сборку добавляем в ресурсы проекта через Project Properties-Resources-Files. Студия при добавлении ресурса генерирует код, который позволяет использовать добавленный ресурс через Resources класс... ...Включение зависимых сборок в ресурсы самой программы позволяет ей работать автономно. Для запуска требуется один лишь exe файл. Это важно для служебных утилит, сразу готовых к использованию. Фактически такие автономные программы не требуют установки и их удобно передавать по сети или хранить на флешке..." Т.е. получается DLL каким то образом помещаем в сборку и как ресурс добавляем в проект??? " Это сообщение отредактировал(а) Zyxel - 27.8.2011, 00:50 |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 4 Всего: 85 |
Zyxel, ну есть еще программки (типа "thisinstall"), которые делают портабельный софт из непортабельного.
Они вообще все что угодно в один екзешник могут запихнуть. ![]() |
|||
|
||||
kiler4747 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 28.2.2011 Репутация: нет Всего: нет |
думаю это поможет
http://www.3dnews.ru/software-news/616082 Добавлено через 4 минуты и 45 секунд если нужно ипользовать библиотеки .NET то вроде ничего не получится, т.к. при установке .NET Fraemwork 4 подстраивается под систему и железо. |
|||
|
||||
Zyxel |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 29.4.2011 Репутация: нет Всего: нет |
Спасибо, MoleBox скачала, на работе установлю, посмотрю что за штука.
Этот вопрос сейчас двигаю по двум направлениям 1. упаковка в автономный ехе-шник с помощью сторонней утилиты, типа MoleBox. Здесь все понятно, только есть сомнение в "солидности" этого способа. 2. создание автономного ехе на уровне компоновки проекта. Здесь начинается чем дальше в лес, тем ну его на фиг) много тем и никакой конкретики( Что думаете относительно "коректности" первого способа и реальности второго? |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |