Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Монолитный exe-шник? / 21 сообщений из 21, страница 1 из 1
19.05.2012, 20:25
    #37802269
Ghost76
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Монолитный exe-шник?
Короче, можно ли ран-тайм-библиотеки поддержки как-нибудь жёстко включить в состав готового экзешника, чтоб он больше не мучал своими постоянными "Cannot locate the Microsoft Visual FoxPro support library" при каждом переносе на новую машину? А то, честно говоря, так достало уже! Даже ТурбоПаскаль и тот умел создавать монолитные экзешники. Неужто Фоксу это не по зубам? :)
...
Рейтинг: 0 / 0
19.05.2012, 20:54
    #37802285
reware
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Монолитный exe-шник?
Ghost76Короче, можно ли ран-тайм-библиотеки поддержки как-нибудь жёстко включить в состав готового экзешника, чтоб он больше не мучал своими постоянными "Cannot locate the Microsoft Visual FoxPro support library" при каждом переносе на новую машину? А то, честно говоря, так достало уже! Даже ТурбоПаскаль и тот умел создавать монолитные экзешники. Неужто Фоксу это не по зубам? :)
Спокойнее, коллега, без пены на ушах. Вы, как я полагаю, делаете для юзера дистрибутив ? Так и делайте его, как и раньше, НЕ ВКЛЮЧАЯ в ЕХЕ биб-лы рантайма. Биб-лы пущай себе копируются в папку установленного приложения. Не надо тут про жуткие монолитные (что это ?) экзешники. Любое приложение Visual Foxpro требует для себя некой "комфортной" среды в виде биб-тек рантайма. Вот их при установке приложения у нового юзера и кидайте в папку, где устанавливается приложение. Точнее, не вы лично их кидайте, а при создании дистрибута перечислите их, как "внешние" файлы.
Все дела.
...
Рейтинг: 0 / 0
19.05.2012, 22:00
    #37802323
Ghost76
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Монолитный exe-шник?
To reware:
Да какая уж там пена... Под "монолитные" - имелось в виду самодостаточные. Почему и привёл, как один из примеров, древний ТурбоПаскаль - сгенерённый им экзешник в простейшем случае на требовал для себя никаких таких привилегий и окружения, а просто исполнялся и всё :)
Все рекомендуемые вами процедуры - давно уже мной вынужденно применяются, и набили мне оскомину. Но если в случае полноценных приложений они ещё хоть как-то оправданны, то скажите, насколько они здраво выглядят в случае (глупейший пример, но ничего более дельного пока в голову не приходит) следующего прг-шника (допустим, единственного файла в проекте) - program1.prg:
&& Проверка правильности определения папки, из которой был запущен данный файл:
SET DEFAULT TO "c:\" && Иммитируем произвольную начальную установку SET DEFAULT Фокса (из его файла ресурсов, например, или - от исполнения предыдущего файла)
papka1=ADDBS(SYS(5)+CURDIR()) && Определяем текущую папку простым способом
papka2=ADDBS(JUSTPATH(SYS(16, 0))) && Определяем её же "продвинутым" способом
=MESSAGEBOX("Вариант с SYS(5)+CURDIR() выдаёт: "+papka1+CHR(13)+CHR(10)+"Вариант с JUSTPATH(SYS(16,0)) выдал: "+papka2,64,"Сравни, Юрик, результаты и прозрей :)")
Всего-то нужно сбацать временный экзешник из пары строчек кода - для демонстрационных целей, и кинуть e-mail'ом его не-Фоксисту, который ещё неизвестно, в какую папку скачает его из почты и попытается там запустить. И ради этого - каждый раз заморачиваться с несколькими дополнительными файлами, не имеющими прямого отношения к этому простейшему экзешнику? ИМХО - нерационально и геморройно. А ведь даже dbf-ники можно вшивать в экзешники, если нет необходимости их модифицировать! Неуж-то dll-ки низзя? :)
...
Рейтинг: 0 / 0
19.05.2012, 23:17
    #37802407
reware
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Монолитный exe-шник?
Ghost76To reware:
Да какая уж там пена... Под "монолитные" - имелось в виду самодостаточные. Почему и привёл, как один из примеров, древний ТурбоПаскаль - сгенерённый им экзешник в простейшем случае на требовал для себя никаких таких привилегий и окружения, а просто исполнялся и всё :)
На это всё наплевать и забыть. Вспомнили тут Турбо-Паскаль, а ещё есть Турбо-Бэйсик, Турбо-ASM.... Забудьте про это, нет никаких "самодостаточных ЕХЕ" в Visual Foxpro. Visual Foxpro есть не более, как ИНТЕРПРЕТАТОР и для работы вашего ЕХЕ требуется в поле видимости задачи наличие run-time библиотек (DLL). Нет, разумеется, в пылу юношеского жара можно попробовать включить эти библиотеки в проект в результирующий ЕХЕ. Вас не смущает, что вместо нормальных 2-3 Мб после этого экзешник раздуется до 10-15 Мб ? А в коде там может быть и вовсе одна строчка QUIT.
Как обычно делают люди - 1) создаётся некий проект с некими PRG и прочим барахлом 2) готовый проект компилируется (создаётся ЕХЕ) 3) запускается некий создатель дистрибута (я лично давно юзаю CreateInstall) 4) в этом дистрибуторе указываем, что помимо самого ЕХЕ должны быть файлы такие-то и сякие-то, не входящие в данный ЕХЕ (это я как раз про рантайм биб-ки) 5) запущается данный дистрибутор (для простоты далее буду называть CreateInstall) и создаёт вам некий SETUP.EXE со всеми потрохами (и с теми, что не вошли в ваш монолитный ЕХЕ) 6) тащим диск/флэшку к юзеру с этим SETUP.EXE и там благополучно запускаем, опосля чего имеем в папке (при установке, как правило, можно указать любой путь) готовую к употреблению программу VFP со всеми уже там лежащими нужными рантайм-библиотеками. Никаких ручных действий не требуется - как указали нашему "CreateInstall" при создании дистрибута, так оно и ляжет. Далее, запущаем ЕХЕ и наслаждаемся.
...
Рейтинг: 0 / 0
19.05.2012, 23:39
    #37802429
Ghost76
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Монолитный exe-шник?
О, это уже теплее! :)
Спасибо за нормальную реакцию и терпение :)
Итак, если опустить изложение стандартного рецепта "приготовления" приложения, которое я и так применяю давно, то меня заинтересовало вот это место: "...в пылу юношеского жара можно попробовать включить эти библиотеки в проект в результирующий ЕХЕ. Вас не смущает, что вместо нормальных 2-3 Мб после этого экзешник раздуется до 10-15 Мб ?"
В моём случае словосочетание "юношеский жар" уместнее будет заменить на "старческий маразм" :) Но... постичь что-то новое - очень уж хоцца! :)
Короче - а вот если не смущает располнение экзешника? Ну просто о-о-очень интересно - получится или нет? Я пробовал включать вышеупомянутые библиотеки в проект - они включаются как "инклуде" только в раздел "Others", а в другие - только как "эксклуде", что вовсе не интересно. В общем, мои принудительные "включения" не дали желаемого результата - экзешник заметно "поправился", но всё равно требует "костылей" в виде тех пресловутых библиотек ран-тайма. Интересует чисто теоретический вопрос - можно ли так их туда включить, чтоб экзешник был "доволен"? Даже ценой собственного "располнения". Для приведённых ранее мной случаев простой демонстрации работы пары команд - просто неразумно создавать дистрибутив. Мне иногда приходится по 10 раз на дню посылать такие простенькие "демонстрашки" из нескольких команд - ну стОит ли из-за этого проделывать всё то, что вы описали после слов "Как обычно делают люди..."?
...
Рейтинг: 0 / 0
19.05.2012, 23:44
    #37802432
justIT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Монолитный exe-шник?
Ghost76которое я и так применяю давно

и при этом Вы не догадывались о существовании множества версий, аналогичных упомянутому выше CreateInstal?

Ваше "давно" - это неделя что ли?


p.s. извините, не удержался и покормил Mr. Tr.
...
Рейтинг: 0 / 0
19.05.2012, 23:47
    #37802438
justIT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Монолитный exe-шник?
rewareЗабудьте про это, нет никаких "самодостаточных ЕХЕ" в Visual Foxpro. Visual Foxpro есть не более, как ИНТЕРПРЕТАТОР и для работы вашего ЕХЕ требуется в поле видимости задачи наличие run-time библиотек (DLL).

rewareЗабудьте про это, нет никаких "самодостаточных ЕХЕ" в Visual Foxpro. Visual Foxpro есть не более, как ИНТЕРПРЕТАТОР и для работы вашего ЕХЕ требуется в поле видимости задачи наличие run-time библиотек (DLL).

reware и Вы еще три раза ему это напишите.

я по собственному опыту знаю - если фразу читать несколько раз - она запоминается, и даже начинаешь понимать о чем там говорится
...
Рейтинг: 0 / 0
20.05.2012, 00:03
    #37802448
Ghost76
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Монолитный exe-шник?
To justIT:
Уважаю ваше мнение, но вопрос-то заключается вовсе не в "существовании множества версий, аналогичных упомянутому выше CreateInstal" и не в степени его "разумности", а в простом "можно или нельзя" ТАК включить библиотеки в тело экзешника, чтоб он их больше не искал? Только и всего! Вот о чём вопрос-то. А вовсе не о том: "нафиг такое нужно, ведь стандартные методики - вот такие-то..." Я разве против привычных методик и средств создания дистрибутивов? Ничуть, сам таким пользуюсь. Но! А если вдруг мне тут подскажут, что "можно вшить те библиотеки вот таким-то образом" - пусть это и будет непрактично, но ведь знаний лишних не бывает, не так ли? :)
...
Рейтинг: 0 / 0
20.05.2012, 01:35
    #37802504
Монолитный exe-шник?
Ghost76ведь знаний лишних не бывает, не так ли? :)Не так. Некоторые знания некотогрым товарищам как обезьяне гранату нельзя давать.
...
Рейтинг: 0 / 0
20.05.2012, 02:52
    #37802531
Ghost76
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Монолитный exe-шник?
To суперзануда:
Скажите лучше прямо, что не знаете ответа. Да и как, по вашему, такое знание может причинить вред?
...
Рейтинг: 0 / 0
20.05.2012, 07:58
    #37802556
Jonny540
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Монолитный exe-шник?
Ghost76Мне иногда приходится по 10 раз на дню посылать такие простенькие "демонстрашки" из нескольких команд - ну стОит ли из-за этого проделывать всё то, что вы описали после слов "Как обычно делают люди..."?
По почте EXE в чистом виде сложно отправить, архивируете ведь?
Ну так сделайте батник или лучше PRG для архивации Вашего EXE вместе с DLL в одном архиве
Никаких заморочек, все автоматически, ведь так Вам хочется?
Ghost76Всего-то нужно сбацать временный экзешник из пары строчек кода - для демонстрационных целей, и кинуть e-mail'ом его не-Фоксисту, который ещё неизвестно, в какую папку скачает его из почты и попытается там запустить
обычно разархивируют все в одну папку, вот и будет там EXE и пара DLL, те самые "дополнительные файлы,
не имеющие прямое отношение к этому простейшему экзешнику"
P.S.Ghost76=MESSAGEBOX("Вариант с SYS(5)+CURDIR() выдаёт: "+papka1+CHR(13)+CHR(10)+"Вариант с JUSTPATH(SYS(16,0)) выдал: "+papka2,64,"Сравни, Юрик, результаты и прозрей :)")ИМХО, здесь CHR(10) - это лишнее :)
...
Рейтинг: 0 / 0
20.05.2012, 08:46
    #37802562
justIT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Монолитный exe-шник?
Ghost76To justIT:
А если вдруг мне тут подскажут, что "можно вшить те библиотеки вот таким-то образом" - пусть это и будет непрактично, но ведь знаний лишних не бывает, не так ли? :)

1 - reware Вам ответил уже

2 - ехе зачем Вы его на FoxPro, если так Вам неудобно это делать? Возьмите тот же Tpascal и на нем делайте. не мучайте себя и форум :-)
...
Рейтинг: 0 / 0
20.05.2012, 11:40
    #37802611
Ghost76
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Монолитный exe-шник?
To Jonny540:
Экзешники с таким простым и заведомо безвредным кодом - легко проходят, например, через Яндекс-почту. Попробуйте сами! :)
А насчёт chr(10) - автоматизм, привычка с прошлых лет :)

To justIT:
Интересно, как можно с помощью ТурбоПаскаля продемонстрировать собеседнику-неФокспрошнику разницу в работе 2-х ФоксПрошных команд? :)

Эх, "гениальная" мысля оказалась непонятой никем!.. :)
Ладно, низзя - так низзя. Закрывайте тему.
...
Рейтинг: 0 / 0
20.05.2012, 14:46
    #37802731
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Монолитный exe-шник?
Не, ну в старых досовских версиях Фокса была опция "Build Standalone Executable", в VFP такого нет...
...
Рейтинг: 0 / 0
20.05.2012, 14:47
    #37802733
UAP
UAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Монолитный exe-шник?
Уважаемый Ghost76 и другие участники данной темы!
Среди обсуждениея http://www.sql.ru/forum/actualthread.aspx?tid=940090
некоторые из Вас не приняли участия.
Обе темы имеют много общего.
Присоединяйтесь!
...
Рейтинг: 0 / 0
20.05.2012, 14:49
    #37802735
Jonny540
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Монолитный exe-шник?
Ghost76Экзешники с таким простым и заведомо безвредным кодом - легко проходят, например, через Яндекс-почту. Попробуйте сами! :)Если бы не пробовал - не говорил бы Только я не понял - а что мешает архивчик сделать?
...
Рейтинг: 0 / 0
20.05.2012, 16:04
    #37802801
justIT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Монолитный exe-шник?
Ghost76To justIT:
Интересно, как можно с помощью ТурбоПаскаля продемонстрировать собеседнику-неФокспрошнику разницу в работе 2-х ФоксПрошных команд? :)


Зачем Не фокспрошнику вообще знать о:
- фокспро
- его команлдах ?
...
Рейтинг: 0 / 0
21.05.2012, 01:01
    #37803137
Ghost76
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Монолитный exe-шник?
AndreTMНе, ну в старых досовских версиях Фокса была опция "Build Standalone Executable", в VFP такого нет...
Вот оно! Просто я забыл, как оно в Дос-Фоксе называлось-то! Помню же, что БЫЛА-таки ж такая возможность и у Фокса, и тогда он ещё не уступал-таки прочим языкам в этом смысле! Вот тоска и заела по тем райским временам. Спасибо, что напомнили! Чё-то растрогался я этими воспоминаниями, достаю носовичок... :)

To UAP:
Спасибо, я уже прочёл ту тему ещё позавчера - она похожа, но аспект там совсем другой, юридический, а не "локационный": там вообще не обсуждается возможность (или невозможность) включения пресловутых библиотек внутрь экзешника. А меня интересует только это, а не юридические заморочки.

Jonny540Ghost76Экзешники с таким простым и заведомо безвредным кодом - легко проходят, например, через Яндекс-почту. Попробуйте сами! :)Если бы не пробовал - не говорил бы Только я не понял - а что мешает архивчик сделать?
Ну, не знаю, что там у вас с отправкой экзешников по почте не получается - мои проходят, как миленькие (имеются в виду простенькие, на уровне ранее приведённого мной в этой теме примерчика прог.кода) Не верите - могу вам перенаправить любой из уже отправленных мной другому адресату экзешников. А вот насчёт архивчика - мысль вполне здравая, его и пользую пока при такой ситуации - уже весь комп получателя захламил дубликатами тех горе-библиотек :) Только как-то обидно за Фокс - такая универсальная махина, а не может обойтись без ширпотребовского архиватора в такой ситуации :( Оно б и ладно, если б он (Фокс) никогда и не умел делать Standalone-экзешники - так ведь умел же! Горько, что сейчас не умеет :(

justITЗачем Не фокспрошнику вообще знать о:
- фокспро
- его командах ?
Долго расписывать. Если вкратце, то: пытается он самостоятельно кое-что на Фоксе делать, только из-за отстутствия Фокс-знаний зачастую применяет не самые рациональные команды. Например, для подсчёта большого количества записей очень ба-а-альшого дбф-ника - применяет COUNT TO переменная вместо обыкновенного RECCOUNT(), а потом - удивляется почему форма так надолго "зажмурилась" и почему GRID вдруг показал последние записи той таблицы, а не те, которые были видны до подсчёта записей :) Вот и приходится просвещать его понагляднее подобными "сравнительными" программками (прилагаю для примера прг-шник) :)

To All:
ИМХО, нечего больше обсуждать по данной теме, раз возможность сабжа сейчас уже утеряна Фоксом :(
...
Рейтинг: 0 / 0
21.05.2012, 07:55
    #37803213
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Монолитный exe-шник?
Ghost76To All:
ИМХО, нечего больше обсуждать по данной теме, раз возможность сабжа сейчас уже утеряна Фоксом :(
Обсуждать нечего, нет такой возможности. Она была только в ДОС-версии фокса.
...
Рейтинг: 0 / 0
21.05.2012, 09:21
    #37803252
BreDen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Монолитный exe-шник?
Может тема уже и закрыта, но у меня одно недоумение и одно предложение
Недоумение: Если человек экспериментирует на фоксе, то у него он(фокс ) должен стоять. А если ФОКС стоит, то екзешник запущенный в любом месте на компе должен работать и без библиотек. Да и зачем екзешник нужен если можно просто prg-шник скинуть. Но может я не знаю каких-то тонкостей.
Предложение: Для своих нужд я давно пользуюсь инсталлятором InnoSetup. Межт немножко не для таких целей - пользуюсь для исправления каких-то косяков в базах на компе у пользователя или обновления данных
Так вот в одну папку можно сбросить екзешник, который мне нужен и dll-ки. И кидаю туда сделанный мною .iss -скрипт файл инсталлятора(прилагаю).
Так вот - в чем прикол - создается инсталлятор,
Когда запускаешь его, то при установке распаковывается екзешник и dll-ки в темповскую папку, запускается твоя прога делается всё что нужно, закрывается твоя программа, удаляется программа(флаг deleteafterinstall в iss) и dll-ки из темповской папки, завершается программа инсталляции. Т.е остаятся только сам инсталляционный файл.

Может как-то громоздко - но повторяю - я это использую для того чтобы не напрягая пользователя что-либо проделать.
...
Рейтинг: 0 / 0
21.05.2012, 12:39
    #37803639
Ghost76
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Монолитный exe-шник?
To BreDen:
О, это, кажется, что-то уже интересненькое - спасибо, попробую! :)
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Монолитный exe-шник? / 21 сообщений из 21, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]