Автономный экзешник

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
uk8amk
Обычный пользователь
Обычный пользователь
 
Сообщения: 67
Зарегистрирован: 26.07.2007 (Чт) 16:52
Откуда: Tashkent

Автономный экзешник

Сообщение uk8amk » 02.09.2008 (Вт) 17:08

Сразу хочу извиниться если мой вопрос немного ламерский, но ответа на него я не нашел.
Вобщем мне частенько попадаются проги написанные на Сях и Дельфях не требующие никакой исталляции и никаких там всяких ОСХ, ДЛЛ и т.д. Так вот меня интересует, можно ли как-то упаковать простое VB6 приложение чтоб оно представляло собой просто один екзешник, уже содержащий в себе все необходимые компоненты и не требующий инсталляции? И как это можно сделать.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Автономный экзешник

Сообщение Хакер » 02.09.2008 (Вт) 17:42

Это никому не нужно. Респект тому, чья программа юзает десятки DLL. Я уже не знаю, придётся наверное такие заявления делать, чтобы уничтожить наитупейшую эту манию запихать всё в один файл.

А программы на VB не требуют никакой инстралляции, точно также как программы на С++. И точно также требуют в некоторых случаях, как требовали бы этого программы, будь они написаны на С++.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

uk8amk
Обычный пользователь
Обычный пользователь
 
Сообщения: 67
Зарегистрирован: 26.07.2007 (Чт) 16:52
Откуда: Tashkent

Re: Автономный экзешник

Сообщение uk8amk » 02.09.2008 (Вт) 19:45

Это мне нужно! Ну по крайней мере я бы хотел попробовать так сделать.
Конечно я не стану отрицать все преимущества динамически подключаемых ресурсов, библиотек и т.д. т.к. такой подход способствует модульному программированию и позволяет задействовать один и тот те файл много раз избегая его повторного копирования. Я лишь задал вопрос можно ли в моем случае это и как.
Вот недавно опять програмка такая попалась(екзешник). Ее и прикладываю во вложении как пример чтобы иметь представление о чем речь. Судя по функционалу она бы потянула за собой несколько dll и OCX. Однако же нет, ничего не тянет, ничего не просит. Просто работает и все.
Вложения
IldaPlay.rar
(173.52 Кб) Скачиваний: 45

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Автономный экзешник

Сообщение Хакер » 02.09.2008 (Вт) 20:07

Это не то, к чему надо стремиться. Это не престижно, как многие думают. Это также глупо, как стремиться отрастить себе длинный язык, или научиться шевилить ушами.

Программа в один exe-шник — это в редких случаях удобно (также как, например, в редких случаях может быть необходим длинный язык), но это совершенно не то, к чему надо стремиться.

Вот, блин, как бы объяснить. Ну ни капли в этом нет престижного. Удобствно в редкаих случаях — да. Престижа — нет.

Я ещё понимаю, можно стремиться написать программу, которая вообще не использует никаких (в том числе системных) DLL. Я такие библиотеки сейчас пишу на сях.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Автономный экзешник

Сообщение Proxy » 03.09.2008 (Ср) 4:06

А вот представь: все свои продукты юзают одни и те же (ну почти все) компаненты, а при инсталяяции инсталятор качает с нета все компаненты, которых не хватает. Т.е. что б пользователь мог качать только проект без того, что потенциально уже может присутствовать на его пк. Клёво? Т.е. на ресурсе, откуда качаешь прогу хранятся помимо этого все библиотеки, контролы и т.п, которые необходимы для работы проги, но они не входят в пакет поумолчанию. Инсталятор анализирует наличие тех или иных необходимых компанентов и качает их только при отсутствии. Т.е. рациональный расход трафика пользователя. Зачемему то, что у него уже есть. Да и потом зачем в EXE лишнее? Для этого есть совсем другие способы. Да, дельфи с дефолтными конфигурациями компилирования тоже складывает в ЕХЕ много лишнего, но это не плюс.
Follow the white rabbit.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Автономный экзешник

Сообщение Денис » 03.09.2008 (Ср) 9:33

uk8amk писал(а):Сразу хочу извиниться если мой вопрос немного ламерский, но ответа на него я не нашел.
Вобщем мне частенько попадаются проги написанные на Сях и Дельфях не требующие никакой исталляции и никаких там всяких ОСХ, ДЛЛ и т.д. Так вот меня интересует, можно ли как-то упаковать простое VB6 приложение чтоб оно представляло собой просто один екзешник, уже содержащий в себе все необходимые компоненты и не требующий инсталляции? И как это можно сделать.


Вот ответ на твой вопрос: НЕЛЬЗЯ.
Потому что все VB программы выполняются на виртуальной машине MSVBVM60.dll, в которой находятся все функции и методы языка и которая начиная с Windows 98 является частью системы и таскать ее с собой на дискетке не обязательно.
С другой стороны, раз основная требуемая программе библиотека является частью системы, можно сказать, что программы на VB автономны и тогда:
Ответ на твой вопрос: МОЖНО.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Автономный экзешник

Сообщение Viper » 03.09.2008 (Ср) 10:50

Денис писал(а):Потому что все VB программы выполняются на виртуальной машине MSVBVM60.dll, в которой находятся все функции и методы языка и которая начиная с Windows 98 является частью системы и таскать ее с собой на дискетке не обязательно.
А вот насчет выполнения всех VB программ на виртуальной машине хочется подробностей. Или ты ошибся термином?
Весь мир матрица, а мы в нем потоки байтов!

uk8amk
Обычный пользователь
Обычный пользователь
 
Сообщения: 67
Зарегистрирован: 26.07.2007 (Чт) 16:52
Откуда: Tashkent

Re: Автономный экзешник

Сообщение uk8amk » 03.09.2008 (Ср) 13:03

Ладно, уговорили. Буду дальше мучать свой SetupFactory.

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Автономный экзешник

Сообщение Williams » 03.09.2008 (Ср) 14:55

Именно, мне попадались множество программ, написаных на Delphi, С++ и многих других языках и наличие дополнительных OCX и DLL было абсолютно не связанно с конкретным языком. Неаккуратный программист напишет даже на лучшем языке программирования (хотя все языки почти что равны) самую тормознутую и огромную по весу программу, а опытный и умелый на любом, том языке, который он знает, маленькую и быстродействующую. Можно считать, что классический VB ничего не требует, поскольку библиотека виртуальной машины VB6, о которой упомянули в этой теме, включена даже в раритетную операционную систему, которую едва-ли уже встретишь, и к тому же, в новейшую Висту.

Кстати, с помощью скриптовых языков инсталляторов можно организовать проверку и закачку нужных компонентов при инсталяции. Не обязательно все паковать в один дистрибутив.
И вы думаете, что вас оставят в живых после прочтения этого поста?

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Автономный экзешник

Сообщение Денис » 04.09.2008 (Чт) 7:50

Здесь принято называть этот файл рантаймом (видимо, потому что в референсах среды разработки написано "Visual basic Runtime objects and procedures"). Однако в описании файла (смотрим через проводник Windows) черным по белому написано "Visual Basic Virtual Machine". Потому я привык называть это таким вот образом. Кто неправ? Не знаю. Видимо правы все.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Автономный экзешник

Сообщение Viper » 04.09.2008 (Чт) 8:37

Денис писал(а):Здесь принято называть этот файл рантаймом (видимо, потому что в референсах среды разработки написано "Visual basic Runtime objects and procedures"). Однако в описании файла (смотрим через проводник Windows) черным по белому написано "Visual Basic Virtual Machine". Потому я привык называть это таким вот образом. Кто неправ? Не знаю. Видимо правы все.
В описании файла сказывается его тяжелая наследственность, ибо до версии VB5 это действительно была виртуальная машина.
Весь мир матрица, а мы в нем потоки байтов!

uk8amk
Обычный пользователь
Обычный пользователь
 
Сообщения: 67
Зарегистрирован: 26.07.2007 (Чт) 16:52
Откуда: Tashkent

Re: Автономный экзешник

Сообщение uk8amk » 04.09.2008 (Чт) 9:13

Williams писал(а): поскольку библиотека виртуальной машины VB6, о которой упомянули в этой теме, включена даже в раритетную операционную систему, которую едва-ли уже встретишь, и к тому же, в новейшую Висту.


Хочу отдельно спросить про Висту. У меня пока нет доступа к компютеру с этой операционкой и поэтому я не имею возможности тестировать свои программы под эту ОС. Все ли программы написанные на VB6 и использующие его встроенные возможности и стандартные либлы Windows(вроде kernel32, gdi32) будут также работоспособны и под Висту?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Автономный экзешник

Сообщение Viper » 04.09.2008 (Чт) 9:20

uk8amk писал(а):
Williams писал(а): поскольку библиотека виртуальной машины VB6, о которой упомянули в этой теме, включена даже в раритетную операционную систему, которую едва-ли уже встретишь, и к тому же, в новейшую Висту.


Хочу отдельно спросить про Висту. У меня пока нет доступа к компютеру с этой операционкой и поэтому я не имею возможности тестировать свои программы под эту ОС. Все ли программы написанные на VB6 и использующие его встроенные возможности и стандартные либлы Windows(вроде kernel32, gdi32) будут также работоспособны и под Висту?
Да, будут. Впрочем имеют место быть различные нюансы. Тема уже поднималась, стоит поискать.
Весь мир матрица, а мы в нем потоки байтов!

uk8amk
Обычный пользователь
Обычный пользователь
 
Сообщения: 67
Зарегистрирован: 26.07.2007 (Чт) 16:52
Откуда: Tashkent

Re: Автономный экзешник

Сообщение uk8amk » 04.09.2008 (Чт) 9:37

Вопросов более не имею. Большое спасибо всем за ответы.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Re: Автономный экзешник

Сообщение Twister » 05.09.2008 (Пт) 11:55

Вот ответ на твой вопрос: НЕЛЬЗЯ.
Вот мой ответ на твой ответ: МОЖНО. Но и вправду - ни кому не нужно.

Алгоритм тривиален: ложим то, что надо распаковать в ресурсы (можно и в другое место, по желанию), пишем небольшой кусок базонезависимого кода и внедряем его в наш экзэшник по принципу вируса (рекомендую создать новую секцию, кстати именно ее и можно заюзать для хранения файлов, вместо ресурсов). Код должен распаковать файлы и передать управление программе на OEP. Это все, в общих чертах.
А я все практикую лечение травами...

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Автономный экзешник

Сообщение Денис » 05.09.2008 (Пт) 14:14

Twister писал(а):внедряем ... по принципу вируса ... Это все, в общих чертах.

После чего у клиентов начинает ржать Касперский, клиенты начинают плеваться и поглядывать на конкурентов.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Автономный экзешник

Сообщение Proxy » 05.09.2008 (Пт) 17:54

Что за бред? Почему это он должен ругаться вдруг? Ассемблинг, не более.
Follow the white rabbit.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Re: Автономный экзешник

Сообщение Twister » 08.09.2008 (Пн) 6:28

После чего у клиентов начинает ржать Касперский
Неадекватная какая-то реакция на слова "по принципу вируса". Ни один антивирь не будет ругаться на новую секцию с правильно выставленными атрибутами и EP, смотрящим в нее.
А я все практикую лечение травами...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 69

    TopList  
cron