Я слышал про динамическую компиляцию в дельфи. Как я понял, это возможность уменьшить размеры файлов исполняемых программ и библиотек. Каким образом это возможно осуществить? (если динамическая компиляция возможна в дельфи) И в чём её отличие от простой компиляции? Заранее благодарен.
Приветствую Вас, Тюменский! Я так понял, что речь идёт о компиляции "RunTime"? Да, это позволяет уменьшить размер exe-шника, НО тебе придётся все пакеты поставлять вместе с программой! Запомни, в Delphi - нельзя никак уменьшить размер exe-шника, брось эту затею и сжимай программу упаковщиками(мне нравится PECompact) - многого не добиться, но всё-таки... Ответ отправлен: 14.05.2003, 21:42 Отправитель: Stein Отвечает BOLT
Здравствуйте, Тюменский! Динамическа компиляция в Delphi/C++Builder: 1)Ты написал код; 2)Компелятор скомпелировал в машинный код; 3)Линковщик связывает скомпелированный компелятором код с другими объектными файлами в единый исполняемый файл.ВОТ ЗДЕСЬ ТЫ МОЖКЕШЬ ВЫБРЫТЬ ТИП ИСПОЛНЯЕМОГО ФАЙЛА.ЕСТЬ 3 ПУТИ: а)Как обычно компелируешь в единый большой исполняемый файл.Линковщик(можно линкер)связывает твой объектный фалй(имя_проги.obj) с объектными кодами фирмы борлан(CC3260.DLL и CC3260MT.DLL).Также присоеденяются VCL60.BPI, VCLDB60.BPI, VCLDBX60.BPI - это билиотеки компонентов, которые ты использовал в свей программе.Здесь размер исполняемого файла файла получается минимум 441 Кбайт(Внимание: все проверял в Borlan C++ Builder 6.0). б)Линкуешь только с STL-библиотеками(CC3260.DLL и CC3260MT.DLL).Заходим "Projects->Options=>Packeges"
и ставим галку "Build with runtime packages", т.е. не линкуем с библиотеками компонентов.Получаешь размер: 79 Кбайт.НО ТЕПЕРЬ ПРИ ЗАПУСКЕ ПРОГРАММЫ ТЕБЕ НУЖНЫ ФАЙЛИКИ VCL60.BPI, VCLDB60.BPI, VCLDBX60.BPI ПЛЮС БИБЛИОТЕКИ УСТАНОВЛЕННЫХ ТОБОЮ КОМПОНЕНТОВ.НЕТ ОНИ У ТЕБЯ ЕСТЬ В WINDOWS-ДИРРЕКТОРИИ, НО ЕСЛИ ТЫ ЗАПУСТИШЬ ПРОГРАММУ НА КОМПЕ, НА КОТОРОМ НЕТ ЭТИХ ФАЙЛОВ, ТО ТЕБЕ ПРИДЕТСЯ И ИХ УСТАНАВЛИВАТЬ ТОЖЕ.ИХ РАЗМЕР МОЖЕШЬ ВЫЧИСЛИТЬ САМ. в)Влючаешь использование динамической RTL-библиотеки: "Projects->Options=>Linker" ставишь галку на "Use dinamic RTL" и опция в втором пункте тоже остается включенной.Получаешь файл размером: 25 Кбайт.НО ТЕПЕРЬ ТЕБЕ НУЖНЫ ВСЕ ФАЛЫ ОПИСАННЫЕ В ПЕРВОМ ПУНКТЕ, ЧТОБ ПРОГРАММА РАБОТАЛА НА КОМПЕ, ГДЕ ИХ НЕТ.МОЖЕШЬ ПОДСЧИТАТЬ ИХ СУММАРНЫЙ РАЗМЕР.ПОВЕРЬ БУДЕТ НАМНОГО БОЛЬШЕ ЧЕМ ИСПОЛНЯЕМЫЙ ФАЙЛ ОПИСАННЫЙ В ПЕРВОМ ПУНКТЕ. ВЫВОД:
не используй динамическое присоеденение RTL-библиотек и библиотек компонентов, если хочешь, чтобы твои программы работали на других компах. Ох, ну я и потрудился!Заранее извиняюсь, если где неграмотно написал! Счастливо, друг! Ответ отправлен: 14.05.2003, 21:44 Отправитель: BOLT
Вопрос № 645
Помогите!!! Создаю динамический список. Пытаюсь туда добавлять инфу и потом выводить. Но при выводе происходит бесконечный цыкл. См. Приложение Спасибо!
Приветствую Вас, Сергей! Имхо, самый первый Maillist должен быть нулевым или указатель следующего TMailList'а должен быть нулевым. Счастливо! Ответ отправлен: 16.05.2003, 19:29 Отправитель: BOLT Отвечает Stein
Доброе время суток, Сергей! Дааааа, я и не знал, что это называется "динамический список", в каком месте он динамический?... Вроде, "линейный, связанный", не так? В приложении - пример формирования ДИНАМИЧЕСКОГО связанного списка фамилий(Pascal): ввод, вывод, удаление.
Приложение: Ответ отправлен: 16.05.2003, 13:23 Отправитель: Stein
Вопрос № 646
Здравствуйте уважаемые эксперты! Подскажите пожалуйста, как в Delphi встроить окно просмотра редактора Word и открыть в нем какой-либо файл. У меня Delphi6 + Office 2000 Заранее спасибо.
Приложение: Ответ отправлен: 16.05.2003, 13:00 Отправитель: Stein Отвечает BOLT
Добрый день, Fess! Если, честно таким не занимался, но посоветовать: 1)Попробуй использовать компонент "Word Document" - находится в палитре компонентов в закладке "Office2k"(Delphi 6.0/7.0;C++Builder 6.0). 2)Также поищи на "Delphi/C++Builder Developer Support" ActiveX-компоненты работающие с Office'ом, там скорее всего могут быть. Ответ отправлен: 16.05.2003, 17:32 Отправитель: BOLT
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.