Большие вопросы по C++ Builder'у!!!
1. Как реально уменьшить размер создаваемых приложений в C++ Builder. На сколько это возможно?
2. Нужно мне вот решить такую задачку. Например в Edit кто-то ввел функцию (допустим - myfunction(variable1,variable2)) и она должна исполниться. Это уже в готовой программе! Что-то похожее на строку запуска.
3. Где в рунете дежат самые хорошие справочники и исходники по C++ Builder'у?
Заранее премного благодарен. Мне это очень нужно.
1. Совсем обленился народ нынче! :) Тут же, на этом же сайте есть статья: http://www.codenet.ru/progr/bcb/small.php
Аналогичные статьи ворохом рассыпаны по "необъемлимому" интернету, юзайте поиск.
2. Для такой штуки нужно реализовать в своей программе поддержку скриптоподобного языка. Бесплатных средств для этого тоже можно найти охапку или две. Юзайте поиск!
3. Да где угодно, кому что нравится, от этого сайта до sources.ru. Юзайте поиск!
Итак, ответ на все три вопроса: юзайте поиск, поиск рулез фарева! :D
Ну что же, на такие "большие вопросы по С++Билдеру" я могу дать маленькие, но весьма ценные (прям неоценимые :D ) ответы:
1. Совсем обленился народ нынче! :) Тут же, на этом же сайте есть статья: http://www.codenet.ru/progr/bcb/small.php
Аналогичные статьи ворохом рассыпаны по "необъемлимому" интернету, юзайте поиск.
Это статья про Visual C++
Это статья про Visual C++
Читайте внимательнее: "Итак, писать будем на чистом Win32 API."
Это действительно способ "реально уменьшить размер создаваемых приложений в C++ Builder".
Другой способ связан с заменой библиотек времени исполнения на пустышки, про это тоже есть статья в "необъемлимом" интернете :)
Вот решил попросить помощи у вас, дорогие пользователи необъемлимого интернета. У меня пару вопросов по C++ Builder. Вот их перечень:
1. Как реально уменьшить размер создаваемых приложений в C++ Builder. На сколько это возможно?
а) Использовать динамическую компоновку + пакеты. Ничего в этом страшного нет, длл-ки от васика и VC++ пачками валяются в System...
б)Использовать API (хотя-бы местами).
в) Подменить стартовый код RTL своим:
http://www.codenet.ru/progr/bcb/tiny.php
2. Нужно мне вот решить такую задачку. Например в Edit кто-то ввел функцию (допустим - myfunction(variable1,variable2)) и она должна исполниться. Это уже в готовой программе! Что-то похожее на строку запуска.
FastScript
3. Где в рунете дежат самые хорошие справочники и исходники по C++ Builder'у?
Самые хорошие у меня на компе, а в Инете см. Аттач
а) Использовать динамическую компоновку + пакеты. Ничего в этом страшного нет, длл-ки от васика и VC++ пачками валяются в System...
б)Использовать API (хотя-бы местами).
в) Подменить стартовый код RTL своим:
http://www.codenet.ru/progr/bcb/tiny.php
а) Фактически размер программы размазывается на размер инсталляционного пакета, т.к. без dll и bpl программа всё равно работать не будет. В результате всех этих манипуляций может получиться и так, что из проги размером под мегабайт выйдет двухмегабайтный инсталляционный пакет.
б) Хотя бы местами толку мало. Представим себе какую-нибудь простенькую форму с рисунком, диалогом его выбора, парой-тройкой кнопок, меню, ещё там с чем-нибудь типа TLabel. Всё на VCL-компонентах. И четыре вызова функций API. Приведёт их использование к существенному сокращению объёма компилированной программы? Нет, не приведёт.
в) Единственный реальный вариант уменьшить размер программы на С++Билдере. Вопрос в другом - а на кой в этом случае нужен и Билдер и С++ как таковой? То же самое естественнее писать на простом С.
а) Фактически размер программы размазывается на размер инсталляционного пакета, т.к. без dll и bpl программа всё равно работать не будет. В результате всех этих манипуляций может получиться и так, что из проги размером под мегабайт выйдет двухмегабайтный инсталляционный пакет.
один vcl50.bpl=1,9 mb + много exe
б) Хотя бы местами толку мало. Представим себе какую-нибудь простенькую форму с рисунком, диалогом его выбора, парой-тройкой кнопок, меню, ещё там с чем-нибудь типа TLabel. Всё на VCL-компонентах. И четыре вызова функций API. Приведёт их использование к существенному сокращению объёма компилированной программы? Нет, не приведёт.
S_OK
в) Единственный реальный вариант уменьшить размер программы на С++Билдере. Вопрос в другом - а на кой в этом случае нужен и Билдер и С++ как таковой? То же самое естественнее писать на простом С.
Вопрос даже не в этом а - на кой нужено его уменьшать, при нынешних машинах? Моему P4 все равно, что на VCL 500 kb, что на API 50 kb. А вот мороки в первом случае, гораздно меньше.
один vcl50.bpl=1,9 mb + много exe
Ну только в этом случае. Хотя, более типична другая ситуация - один/два екзешника по 900 кило + bpl метров на 5 :D
А может, человек хочет в ROM прописать :D :D
а проще всего сжать екзешник в конце типа ASPack'ом и все!!! размер уменьшится от 2 раз и более... что уже превосходно:!!!:
Ага, а система потом будет держать его в свопе, если потребуется выгрузить. Нет, лучше уж пускай просто большой EXE, чем маленький, но сжатый.
Кстати, все разговоры о большом размере программ - прямое следствие отсутствия в Windows системных средств создания программ на современном уровне. Поддержка обеспечивается библиотеками, отсюда и размеры. Писать на чистом WinAPI - выход, но далеко не для всех проектов.
Ты уверен?
ASPack проигрывает UPX, если не пугает работа из командной строки - вперед.
У UPX только одно достоинство - сжатые файлы можно распаковать обратно. Чем собственно, я и пользуюсь.
Читал у Рихтера про распределение памяти в Win32?
Кстати, все разговоры о большом размере программ - прямое следствие отсутствия в Windows системных средств создания программ на современном уровне.
Что ты хотел этим сказать?
.NET?
Палка о двух концах.
Поддержка обеспечивается библиотеками, отсюда и размеры. Писать на чистом WinAPI - выход, но далеко не для всех проектов.
Ну так используй "компактные" библиотеки, где ничего лишнего не попадает в конечный файл и соотв-но нет большой разницы "чистый API" или враппер. Пример такой библиотеки - WTL.
.NET?
Палка о двух концах.
Да. Если .NET будет в системе, да еще без прокладок, палка будет действительно о двух концах: на одном драйвера, на другом - прикладные программы.
Ну так используй "компактные" библиотеки, где ничего лишнего не попадает в конечный файл и соотв-но нет большой разницы "чистый API" или враппер. Пример такой библиотеки - WTL.
Развивая далее, можно сказать, что концепция шаблонов вообще появилась как средство обойти недостатки существующих ОС, не отвечающих современным принципам программирования. С эволюцией ОС шаблоны отомрут как явление, т. к. перестанут быть востребованы. Ну, или перейдут из обычных в узко специализированные области программирования.
Да. Если .NET будет в системе, да еще без прокладок, палка будет действительно о двух концах: на одном драйвера, на другом - прикладные программы.
Плюс понижение быстродействия, плюс отрицательные стороны универсальности, т.е. если понадобится выйти за рамки стандартно предоставляемых контроллов, то на это уйдет значительно больше ресурсов, в т.ч. и объем программы.
Развивая далее, можно сказать, что концепция шаблонов вообще появилась как средство обойти недостатки существующих ОС, не отвечающих современным принципам программирования. С эволюцией ОС шаблоны отомрут как явление, т. к. перестанут быть востребованы. Ну, или перейдут из обычных в узко специализированные области программирования.
Не согласен. Шаблоны не имеют никакого отношения к ОС. Использование шаблонов в WTL - просто один из многочисленных примеров примнения шаблонов.