Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/22: Рейтинг темы: голосов - 22, средняя оценка - 4.77
В экстазе
168 / 152 / 38
Регистрация: 05.08.2012
Сообщений: 767
Записей в блоге: 3
1

Как создают маленькие приложения? (размером до ~50-70Кб)

17.08.2012, 15:07. Показов 4485. Ответов 38
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток! Этот вопрос (Subject) меня интересует уже достаточно давно. Мне постоянно попадаются разнообразные оконные приложения, например:

1. FreeMemory
2. Разнообразные модули инсталляторов
3. Модули самораспаковывающихся архивов
4. И множество других приложений

Всех их объединяют 2 факта:
1. Они используют оконные интерфейсы (так же, не редко умеют "показывать картинки", распаковывать архивы, и выполнять множество прочих функций)
2. При этом занимают 30-70Кб
3. Не требуют "дополнительных" библиотек, то есть, грубо говоря, запускаются на Windows вплоть до версии Win9x без необходимости "доустановки" чего-то ещё.

Конечно, наиболее рациональный вариант, это писать на "голом Win32 API" и так далее. Но, лично мне вериться с трудом в то, что авторы всех этих программ методично и муторно использовали "голый" Win32 API (и, если следовать этой логике. то некоторые, ещё и написали свои собственные "контролы").

Размер готовых приложений, тестировал буквально во всем (везде), что (где) мог найти (всяческие компиляторы + разнообразные примеры, разнообразные IDE и прочие "плюшки").

Собственно, под "проверку" попали:
1. Visual Studio (разные версии)
2. CodeBlocks + MinGW + разнообразные оконные фреймворки
3. QT Creator
4. Borland C++ Builder

Ничего из выше перечисленного, почему-то не генерирует .EXE, со статической линковкой (даже после сжатия каким-нибудь UPX'ом), который бы занимал не более 70Кб и при этом обладал хотя бы частью функционала описанного выше. В лучшем случае, удаётся сжать программу килобайт эдак в 200.

Собственно, вопрос. На чем (как) пишутся подобные программы? Какая используется при этом IDE, компилятор и пр. "плюшки"? То есть, как можно уместить "де-архиватор" + штуковину, отображающую картинку в качестве заставки (сплэш-скрин) и ещё кучу всякого функционала (работа с реестром, ини-файлы, и пр.) в 50Кб? Ассемблер+WinAPI наше всё?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.08.2012, 15:07
Ответы с готовыми решениями:

Как преобразовать в строке все маленькие буквы в большие а большие в маленькие?
Дана строка .Преобразовать в ней все маленькие буквы в большие а большие в маленькие. Вот что я...

Большое количество библиотек для приложения создают неудобство для распространения программы
Вообщем у меня около 10 .DLL библиотек таскается с моей программой...Как сделать чтобы не таскать...

Как создают компиляторы
Ну на каком вообще языке написан компилятор для С Асемблера...Какой алгоритм его роботы??? Глупый...

Как создают такие анимации
Здравствуйте! http://2u.ru/templates/33119.html - по данной ссылке находится сайт на silverlight....

38
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
17.08.2012, 15:14 2
Цитата Сообщение от wolfalone Посмотреть сообщение
Собственно, вопрос. На чем (как) пишутся подобные программы?
на winapi
Цитата Сообщение от wolfalone Посмотреть сообщение
Ассемблер+WinAPI наше всё?
Ассемблер-то тут при чем?

Добавлено через 25 секунд
Цитата Сообщение от wolfalone Посмотреть сообщение
методично и муторно
Это не так муторно, как кажется. Видимо, ты плохо знаком с винапи.
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
17.08.2012, 15:18 3
Цитата Сообщение от wolfalone Посмотреть сообщение
3. Не требуют "дополнительных" библиотек, то есть, грубо говоря, запускаются на Windows вплоть до версии Win9x без необходимости "доустановки" чего-то ещё.
а гигабайты в ...System32 ? с чего ты взял, что не используются? просто на каждый пук не пишется новый dll, а в самом виндоусе их немало.
0
1 / 1 / 0
Регистрация: 24.10.2009
Сообщений: 29
17.08.2012, 15:26 4
Purebasic даёт хороший результат, по крайней мере 2500 не комментируемых строк кода у меня на выходе получалось 300 кб...

Скомпилированный код:
PureBasic
1
2
For i = 1 To 1000
Next i
В итоге получилось 2 кб. Если открыть файл блокнотом, то можно увидеть такие строки:
LН!This program cannot be run in DOS mode.
™memset MSVCRT.dll чGetModuleHandleA ¤HeapCreate ҐHeapDestroy ExitProcess KERNEL32.dll
что говорит о стандартном наборе совместимости файла которое присутствует в любом ехе-шнике...

Я не мало написал разных программ и код достигал от 10000 до 30000 строк, но ещё ни разу скомпилированный код не достигал 1 мб...

Ещё всё зависит от написания кода, если внутри вручную забивать массивы, то естественно будет раздуваться.

Ещё хотелось отметить что скомпилированный код не плохо сжимается архиваторами.
0
47 / 47 / 10
Регистрация: 17.08.2012
Сообщений: 225
17.08.2012, 15:26 5
например(mingw+32 битная винда):
test.c:
C
1
2
3
4
5
6
7
8
9
10
//программа выводит простое сообщение
#include <windows.h>
int main(void)
{
MessageBoxA(NULL,"hello world","ok",0);
 
 
return 0;
 
}
сборка:
Код
gcc -Dmain=__main -nostdlib -Wl,-s,-subsystem,windows -Os test.c -luser32 -o test.exe
размер test.exe 3 килобайта
0
В экстазе
168 / 152 / 38
Регистрация: 05.08.2012
Сообщений: 767
Записей в блоге: 3
17.08.2012, 15:32  [ТС] 6
Цитата Сообщение от Vourhey Посмотреть сообщение
Это не так муторно, как кажется. Видимо, ты плохо знаком с винапи.
Я действительно плохо с ним знаком. К тому же, за 10 лет не использования оного - забыл его нафиг

Цитата Сообщение от Vourhey Посмотреть сообщение
Ассемблер-то тут при чем?
Как причём? Я помню, когда учился на С++ программировать, нас ещё и ассемблеру попутно учили. Помню, показывали пример, самого маленького оконного приложения, размером около 3Кб (2.38Кб кажется, "голое" Win9x окно, истинный тру-код )

Цитата Сообщение от novi4ok Посмотреть сообщение
а гигабайты в ...System32
Не "руками" же все их функции вызывают? Наверняка есть какое-то универсальное средство, которым все пользуются? Вот например, NullSoft Install System (от авторов WinAMP), если мне не изменяет память, делает готовые инсталляшники с размером модуля около 50Кб. Неужели там весь код написан "в блокноте" на чистом WinAPI?

Добавлено через 2 минуты
МаксимТ, а можно скомпилированный пример такой программы получить? Если можно с окошком и 1-ой кнопочкой, по нажатию которой вылезет "Хеллоу Ворлд!", а то под рукой MinGW нет и скачать (USB-модем) - не лучшая перспектива.
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
17.08.2012, 15:35 7
Цитата Сообщение от wolfalone Посмотреть сообщение
Я действительно плохо с ним знаком.
Тогда почему ты всех пытаешься убедить в существовании средства, о котором сам не знаешь?
Цитата Сообщение от wolfalone Посмотреть сообщение
Помню, показывали пример, самого маленького оконного приложения, размером около 3Кб (2.38Кб кажется, "голое" Win9x окно, истинный тру-код )
Блин, 3 килобайта оно не из-за ассемблера. А из-за того, что весь код в виндовых длл-ках. Вам просто не показали, что borland c++ 3.1 BW (точно версию не помню, было давно, был пьяный в общаге) скомпиляет виндовое приложение с окном в те же 3 килобайта. Вот именно прям 3 кила, не от твоего сообщения такой размер взял, сам компилял. Ассемблер тут ну вот вооооообще не при чем. Я на ассемблере могу прилинковаться к VCL и приложение с пустым окном будет 300 килов. Асм опять виноват? ))
Цитата Сообщение от wolfalone Посмотреть сообщение
Не "руками" же все их функции вызывают?
А функции из Qt не руками вызывают? ))))
Цитата Сообщение от wolfalone Посмотреть сообщение
Наверняка есть какое-то универсальное средство, которым все пользуются
Да. Редактор называется.
0
47 / 47 / 10
Регистрация: 17.08.2012
Сообщений: 225
17.08.2012, 15:37 8
моя программа просто выводит сообщение, чтобы добавить кнопочку нужно код чуть усложнить.
скомпилированная программа во вложении(код писал выше)
Вложения
Тип файла: zip test.zip (513 байт, 16 просмотров)
0
В экстазе
168 / 152 / 38
Регистрация: 05.08.2012
Сообщений: 767
Записей в блоге: 3
17.08.2012, 15:46  [ТС] 9
Цитата Сообщение от МаксимТ Посмотреть сообщение
нужно код чуть усложнить
к сожалению, мне сложно оценить насколько "чуть", по этому просить Вас повторно об этом не буду. Но, возможно у Вас где-нибудь завалялся пример, или какой-нибудь док/мануал или ссылка на примеры кода подобной программы?

Добавлено через 37 секунд
Цитата Сообщение от Vourhey Посмотреть сообщение
Да. Редактор называется.
Я только сейчас понял, насколько я ошибался в этой жизни, я всегда думал, что эта штука называется IDE...
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
17.08.2012, 15:56 10
Цитата Сообщение от wolfalone Посмотреть сообщение
я всегда думал, что эта штука называется IDE..

Не по теме:

и вот оно поколение, что без IDE никуда. Все что вне IDE - "ассемблер" и муторно

0
В экстазе
168 / 152 / 38
Регистрация: 05.08.2012
Сообщений: 767
Записей в блоге: 3
17.08.2012, 15:57  [ТС] 11
Цитата Сообщение от wolfalone Посмотреть сообщение
эта штука называется IDE
Хотя, Noepad++ как выяснилось, поддерживает даже C++, я был не прав дважды, сознаюсь!
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
17.08.2012, 16:02 12
wolfalone, что значит "поддерживает с++"? Я тебя так плохо понимать..
0
47 / 47 / 10
Регистрация: 17.08.2012
Сообщений: 225
17.08.2012, 16:02 13
Цитата Сообщение от wolfalone Посмотреть сообщение
к сожалению, мне сложно оценить насколько "чуть", по этому просить Вас повторно об этом не буду. Но, возможно у Вас где-нибудь завалялся пример, или какой-нибудь док/мануал или ссылка на примеры кода подобной программы?
http://msdn.microsoft.com/en-u... 84843.aspx
(в самом конце есть подобный пример, хотя и не изучал его)
в плане документации - msdn(либо перевод этого ресурса на русский язык)
вобще когдато давно писал приложение с несколькими кнопочками, текстовыми полями,
приложение имело некоторую функциональность (работа с сетью и другими приложениями)
размер кода был довольно большой(чистый вин апи)
программа писалась в ide netbeans , и собиралась в 1 клик (хотя способ сборки был очень специфичен, но среда позволяла всё настраивать под минимальный размер экзешника) кроме того экзешник зависел только от стандартных библиотек, которые есть во всех виндах начиная с windows 95
размер экзешника был 8 килобайт.
0
В экстазе
168 / 152 / 38
Регистрация: 05.08.2012
Сообщений: 767
Записей в блоге: 3
17.08.2012, 16:08  [ТС] 14
Цитата Сообщение от Vourhey Посмотреть сообщение
и вот оно поколение, что без IDE никуда
Ну тут Вы не совсем правы, начинал (учиться) программировать я ещё во времена Win95 & DOS и такие вещи как консольные (не знаю, как правильно называется, "редактор" или "IDE") "штуковины" для написания кода C++, Basic, Pascal и их подобия под Win3.1(1) - мне весьма хорошо знакомы (по крайней мере, были). Но, к хорошему привыкаешь быстро, и лично мне очень нравиться NetBeans, практически для всего. И для C/C++ кода (хотя я уже давно почти не пишу на нем) и для PHP кода и для почти всех прочих задач написания кода! Очень экономит время и нервы, на мой взгляд. Рекомендую!

Добавлено через 6 минут
Цитата Сообщение от Vourhey Посмотреть сообщение
что значит "поддерживает с++"?
я имел в виду, что в Notepad++ есть подсетка синтаксиса C++

Писать код без подсветки синтаксиса - на мой взгляд, это только для тру-мазахистов. В этом я убедился ещё лет наверно с десяток назад, когда наслушался, что "настоящие" сайты пишут в блокноте. Попробовал... с тех пор в жизни никогда ничего не писал в блокноте, из кода. Время, нервы, ошибки, всё "одноцветное"... зачем?

Даже в Turbo C++ for DOS, насколько я помню подсветка синтаксиса присутствовала
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
17.08.2012, 16:14 15
Цитата Сообщение от wolfalone Посмотреть сообщение
я имел в виду, что в Notepad++ есть подсетка синтаксиса C++
В любом программерском редакторе поддерживается подсветка всех популярных языков, о чем речь...
Цитата Сообщение от wolfalone Посмотреть сообщение
Писать код без подсветки синтаксиса - на мой взгляд, это только для тру-мазахистов. В этом я убедился ещё лет наверно с десяток назад, когда наслушался, что "настоящие" сайты пишут в блокноте. Попробовал... с тех пор в жизни никогда ничего не писал в блокноте, из кода. Время, нервы, ошибки, всё "одноцветное"... зачем?
Даже в Turbo C++ for DOS, насколько я помню подсветка синтаксиса присутствовала
К чему все это?
Цитата Сообщение от wolfalone Посмотреть сообщение
Но, к хорошему привыкаешь быстро, и лично мне очень нравиться NetBeans, практически для всего. И для C/C++ кода (хотя я уже давно почти не пишу на нем) и для PHP кода и для почти всех прочих задач написания кода! Очень экономит время и нервы, на мой взгляд. Рекомендую!
Спасибо, я vim-ом пользуюсь
0
В экстазе
168 / 152 / 38
Регистрация: 05.08.2012
Сообщений: 767
Записей в блоге: 3
17.08.2012, 16:18  [ТС] 16
Цитата Сообщение от Vourhey Посмотреть сообщение
К чему все это?
Это так, к слову. Крик души
0
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
18.08.2012, 13:04 17
Цитата Сообщение от wolfalone
Но, к хорошему привыкаешь быстро
В советские времена было очень мало автомобильных сервисов и были они сравнительно дорогими. Поэтому 99.9% автомобилистов разбирались во внутренностях автомобиля и понимали, как он устроен. Сейчас очень много иномарок и зарубежных сервисных центорв, где всё тебе сделают культурно и хорошо, а тебе остаётся только ковырять в носу и заплатить деньги за сервис. Удобно? Несомненно. Только теперь приличная доля автомобилистов вообще не разбирается в автомобилях.

С IDE vs редактор/консоль всё ровно то же самое. В IDE работать удобно.Только основная масса тех, кто работает в IDE, вообще не понимают, хотя бы как устроен процесс компиляции, не говоря уж о более сложных вещах. И твои вопросы (особенно в части упоминания ассемблера) довольно наглядно это подтверждают
0
В экстазе
168 / 152 / 38
Регистрация: 05.08.2012
Сообщений: 767
Записей в блоге: 3
18.08.2012, 23:00  [ТС] 18
Evg, не совсем написанным выше, я согласен. Как утроен процесс компиляции я прекрасно знаю, хотя принципиально не пишу в консоли в виду собственных идеологических убеждений. Так же как и не езжу на работу на велосипеде по тому, что это намного полезнее для здоровья и окружающий среды, нежели удобная комфортная иномарка с круиз-контролем и кучей электроники которая думает за водителя не давая совершать ему опрометчивых решений.

Хотя, в том, что я не разбираюсь в деталях на уровне "дизассемблирования её кода с целью последующего патчинга" - Вы бесспорно правы. И не разбираюсь я в этом не потому, что мне лень или что-то подобное, а по тому, что время НЕ потраченное на ремонт машины - я посвящаю развитию в других областях. К тому же, в отличии от машин того времени (да и вообще российского автопрома, пожалуй) моя машине не ломается в самый не подходящий момент, заставляя тем самым тратить время на её ремонт. К тому же, именно спрос рождает предложение, а не наоборот. Эти самые "сервисы" появились, так как на них появился спрос, который обусловлен повышением уровня жизни населения.

Так же: я НЕ:
1. Пеку себе хлеб (покупаю его в магазине)
2. Шью себе носки и прочие элементы одежды (для этого так же, есть магазин)
3. Не занимаюсь сборкой и ремонтом сотовых телефонов (магазин)
4. Пытаюсь заменить самому себе традиционных врачей и хирургов в том числе, самостоятельно вырезая себе аппендицит или вырвать зубы обусловив это тем, что раньше наши предки хорошо знали собственную анатомию и поступали именно так (для этого есть терапевты, стоматологи, хирурги и прочие специалисты своего дела)

Думаю, список можно не продолжать, так как моя мысль и точка зрения уже должны прояснится.

Так же, хочу заметить что я (видимо тут стоит добавить слово "тоже") выходец из старой школы программистов, где программировали ещё под "Агаты" и "Векторы" и кроме консоли ничего лучше не знали, да и сравнивать её собственно было не с чем. И программирование мыло настолько мутерным, и мало производительным, что передать это словами невозможно. "И создал Бог землю, и была она ни большой ни маленькой, так как сравнить её было не с чем" (с) Какой-то фильм. Хотя, на то были конечно и свои причины. Когда у компьютера оперативная память измеряется килобайтами, а вместо винчестера - 5,25" дискета... Сложно себе представить современные технологии в рамках подобной машины.

На счёт замечания про "ассемблер", честно говоря не совсем понял. Случаи, когда программа написанная грамотным программистом на ассемблере сопоставима по размеру с программой написанной грамотным программистом C/C++, крайне редки.

Так же, не могу не вспомнить слова одного из преподавателей бизнес школы, курса "Молодой руководитель". Эти слова были для меня буквально пророческими, несколько лет: "Идеальных трудовых ресурсов не бывает, вам придётся работать с тем, что есть". Это я к тому, что, к сожалению, не все мои коллеги, подчиненные и прочие люди с которыми мне приходилось работать были выходцами из старой школы, и могли писать программы в консоли порой вообще без редактора (что уж там говорить про IDE). Я даже больше скажу, многие из них вообще плохо представляли, что такое консоль. Но, это нисколько не мешало им делать качественные программные продукты, удовлетворяющие всем требованиям заказчика.


Цитата Сообщение от Evg Посмотреть сообщение
С IDE vs редактор/консоль всё ровно то же самое. В IDE работать удобно.
Тут я согласен на все 100%. IDE vs Console это то же самое, что сравнивать российский автопром, который выпускает машины для: мало обеспеченных слоёв населения, а так же водителей-экстрималов, любителей "ремонтировать машины", вместо того, что бы ездить на них и прочих энтузиастов. Как ЭТО вообще можно сравнивать с машиной сделанной "людьми для людей", для того что бы "ездить" (а не заниматься ремонтом) - я не понимаю. Я вообще, с ужасом вспоминаю, российскую машину тех времён когда 99.9% водителей было "шофёрами" и знали свою машину буквально "до болтика". Это незабываемое чувство экстрима, когда на скорости 90км/ч машина постепенно начинает терять управление. Особенно, при вождении подобных автомобилей, меня вдохновлял тот факт, что при аварии со "столбом", на скорости 60км/ч, от водителя, в большинстве случаев остаются только голова и ноги. Это во истину уроки именно "старой школы", которые можно обозначит никак иначе, кроме как: "стань асом или умри". Но, мир не может состоять только лишь из гениев и мёртвых... как бы нам этого не хотелось. Он будет слишком скучный. Мир давно стал цветным и уже не похож на старый бабушкин телевизор.

Так же, хочу не согласиться с тем, что "большинство не знает...". Есть то большинство, которое не хочет знать. И IDE к этому, порой имеет достаточно косвенное отношение. Лично я не вижу ничего зазорного в том, что большинство параметров компилятора можно единожды указать в "свойствах проекта", единожды и сохранить их, там, не вбивая их каждый раз в консоли, тем самым сэкономить время и нервы, благодаря, тому факту, что все последующие сборки можно пустить с этими настройками, путём сохранения этих параметров компиляции вместе с проектом в системе контроля версий и автоматическим обновлением этих параметров у коллег.

К тому же, я не разделяю Вашего мнения о том, что "99.9% программистов сейчас уже не те "что раньше". Так как же и НЕ считаю, что 99.9% девушек зашедших в бордель и попросивших стакан воды - шлюхи, только по тому, что они зашли в бордель. Хотя, в чем-то Вы правы. При СССР и колбаса была вкуснее и люди добрее и молоко жирнее было... и есть было нечего. И людей расстреливали массово, ликвидируя "среднюю прослойку населения" как таковую. Оставались только крайности: крестьяне и "НЕ крестьяне" (бедные и богатые), ничего "посередине" в принципе, не было.

Я хотел ещё много чего добавить к выше сказанному, но решил отвлечься и пойти выпить "палёного" молока (так как не держу свою корову, не смотря на то, что умышленно переехал в загородный дом [в строительстве которого принимал активное участие] и пить, "правильное" парное молоко, у меня к сожалению нет возможности), которое произвёл кто-то из тех самых 99.9% которые мало что в "этом" понимают. К тому же, мне кажется, нам всё-таки стоит сменить либо ракурс разговора, либо саму тему вообще (то есть, продолжить обсуждать наши личные доводы) в другой теме, либо всё-таки вернуться к вопросу, который звучит примерно так: "Использование "голых" WinAPI - это единственный способ написать приложение, которое после сжатия можно уместить в 40-70Кб, при условии того, что оно использует windows-окна и обладает, например функцией распаковки архивов?".

Добавлено через 10 минут
P.S. Постоянно задаюсь себе вопросом: почему нет консольной версии программы "1с бухгалтерия"? Почему нет "Need for Speed" и прочих популярных игр с управлением из командной строки? И зачем вообще придумали все эти "удобства", типа "графического интерфейса", "подсветки синтаксиса", "авто завершения кода", динамического анализа кода прямо во время разработки, IDE и прочие "ненужности". Ведь гораздо проще всё было свести к единому стандарту: экран - чёрный, шрифт - белый (серый). Представляете, какая была экономия машинных ресурсов, трафика и времени на изучения всего этого "изобилия" кошерных технологий? Бухгалтер, сис. админ, программист и про-геймер мог бы быть одним человеком! ***Если есть желающие рьяно подискутировать на эту тему - я прошу Вас создать отдельную ветку (тему) в форуме и дать ссылку.
0
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
18.08.2012, 23:59 19
wolfalone, ты почему-то воспринимаешь сказнное мной как претензию. А это не претензия, а объяснение на пальцах того, что IDE'шники в основной своей массе плохо разбираются в устройстве. То, что им не нужно, я и не пытаюсь оспаривать. Не нужно - ну и не надо. Но вот если вдруг стало нужно, то значит настала пора научиться работать без IDE. По другому понять будет сложно. Либо работать под линуксом или с бесплатными библиотеками под виндами, потому что в этом случае е$ля будет обеспечена и придётся постоянно ковыряться в гугле, что обязательно повлечёт за собой новые и полезные знания

Цитата Сообщение от wolfalone Посмотреть сообщение
На счёт замечания про "ассемблер", честно говоря не совсем понял
В контексте "работать на winapi" программа, написанная на ассемблере или любом другом языке программирования будет иметь примерно одинаковый размер. И пусть они будут отличаться в 2 или в 3 раза. Но это не на 2 и не на 3 порядка, как это получается при попытке работать через любую мало-мальски приличную надстройку над winapi в виде библиотеки классов

Цитата Сообщение от wolfalone Посмотреть сообщение
Лично я не вижу ничего зазорного в том, что большинство параметров компилятора можно единожды указать в "свойствах проекта", единожды и сохранить их
Да я не о настройках компилятора говорил, а об общем понимании процесса компиляции, устройства компилятора, устройства библиотек, о разнице между программированием на ассемблере и программирования на языке и т.п. Твои непонятки в постановке вопроса данной темы растут именно от непонимания всего этого процесса. Если тебя реально интересует заданный тобой вопрос, то тебе придётся научиться. Если вопрос задан с целью просто поболтать и получить дежурный ответ - в этом тоже нет ничего плохого. Поверхностного понимания во многих случаях более, чем достаточно

Цитата Сообщение от wolfalone Посмотреть сообщение
Постоянно задаюсь себе вопросом: почему нет консольной версии программы "1с бухгалтерия"?
Подобные попытки острить в очередной раз показывают, что тебе попросту не хватает опыта, чтобы понимать, зачем вообще люди работают в консоли, ибо в IDE кажется, что всё намного проще
1
В экстазе
168 / 152 / 38
Регистрация: 05.08.2012
Сообщений: 767
Записей в блоге: 3
19.08.2012, 01:29  [ТС] 20
Цитата Сообщение от Evg Посмотреть сообщение
зачем вообще люди работают в консоли, ибо в IDE кажется, что всё намного проще
Всё сугубо относительно. В IDE намного проще программировать, особенно когда работаешь с другими людьми, не зависимо от того нравятся они тебе (в смысле, мне) или нет. Например, мне буквально ежедневно приходиться настраивать разнообразные Linux-сервера (в меру своих навыков), для веб-разработок, установки/настройки очередного репозитория кода и прочих внутренних нужд. Хотя, это должен делать системный администратор, на мой взгляд. Но, мой взгляд в данном контексте не учитывается, так как с некоторых пор я прекратил предпринимательскую деятельно и перестал быть "сам себе хозяин", уйдя работать в крупную фирму. И... скажу Вам, "да!", консоль это круто, без сомнений. Всё совершенно под рукой, особенно радуют редакторы заточенные под правку всячески конфигов, коих постоянно приходиться править массы.

В контексте же программирования, мне (*лично!) гораздо удобнее (проще), подстроиться под других, нежели в очередной раз пытаться устроить революцию и научить всех "делать как надо". "Под других", это значит, "писать в IDE", в моём случае. Спустя несколько лет, это перерастает в привычку или даже более того. К тому же, само понятие "консоль", в IDE никто не отменял. Не знаю, как сейчас (думаю, ничего не изменилось), но раньше, например в NetBeans при разработке на PHP Symfony (web) была такая архиудобная штука, как командная строка и т.н. "консоль управления", прямо в самой IDE. Нечто аналогичное было и для большинства других языков/платформ/разработок в рамках NetBeans.

Лично для себя, не вижу ни одной объективной причины, писать именно код и именно в консоли, в данный момент времени (то бишь, сейчас).


Цитата Сообщение от Evg Посмотреть сообщение
это не претензия
Это просто праздник какой-то! Я уж было подумал, что имею честь общаться с очередным ярым фанатом "linux наше фсё", "фортачки ф топку", "DOS спасёт мир", и "в DOS ничё ни зависало". Собственно, спасибо.


Цитата Сообщение от Evg Посмотреть сообщение
я не о настройках компилятора говорил, а об общем понимании процесса компиляции, устройства компилятора, устройства библиотек
В чём-то, Вы правы. Я уже не помню всех досконально тонкостей процесса компиляции, из за давности лет и изменения профиля программирования в целом, а так же, других жизненных изменений. Дипломную (или иную) работу, типа "написать свой компилятор С++" мне тоже делать не приходилось, а делать её, "что бы делать" я не находил целесообразным. Устройство библиотек (в т.ч. стандартных для C/++) мы изучали, но сейчас я тоже вряд ли смогу похвастаться их знаниями. Хотя, с другой стороны, я не пытаюсь выставить себя профессиональным C++ программистом. Минимум 5 лет, отсутствия всякой практики - дают о себе знать.


Цитата Сообщение от Evg Посмотреть сообщение
И пусть они будут отличаться в 2 или в 3 раза. Но это не на 2 и не на 3
С этим я тоже не могу поспорить. Я даже больше скажу, мне прекрасно известна причина, почему программы наипсанные на ассемблере занимают меньше, нежели программы написанные на C++. Так же, мне хорошо известно как всеми нами любимое ООП порой "раздувает" код (я имею в виду, машинный) до значительных размеров, сокращает быстродействие программы и так далее.

Если вернуться к вопросу, об ассемблере, то, давайте я попробую уточнить вопрос.

У нас есть программа, написанная на C++ Builder, которая в сжатом виде занимает ~200Кб. У программы есть окно и класс (или функция) для распаковки ZIP-архивов. Если программу написать на ассемблере, с учётом, что
Цитата Сообщение от Evg Посмотреть сообщение
они будут отличаться в 2 или в 3 раза
то, получиться как раз около 70Кб.

Это я конечно утрирую. Так как, в реале 70Кб там совсем не получиться, по той простой причине, что C++ Builder использует VCL, и как раз именно VCL-library из-за множественного наследования раздувает код до подобных размеров. Сам компилятор тут не причём, проверено.

Если говорить о Visual Studio, QT(Creator) и прочих "плюшек" - при статической линковке, ситуация примерно аналогичная.

Собственно, отсуда и подобный вопрос: как авторам программ (для примера возьмём модули инсталляторов или самораспаковывающихся архивов), удаётся достичь столь мирезных размеров приложения? Они используют чистый WinAPI?

*для ещё большей наглядности, я прикладываю файл-пример, в виде самораспаковывающегося архива. Сам модуль-распаковщик занимает ~40Кб, вместе с функционалом распаковки. При этом, модуль сам по себе не сжат. Сжатый модуль, занимал бы ~20Кб. Для достижения подобных результатов можно использовать WinAPI only? Никаких готовых библиотек, а ещё лучше готовых комплектов (IDE+Lib's, аля QTCreator, Visual Studio, etc) нет?
0
19.08.2012, 01:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.08.2012, 01:29
Помогаю со студенческими работами здесь

Как создают языки программирования?
Извините может это и глупый вопрос:) но скажите где, как и когда создали языки программирование?...

Как сейчас создают сайты?
В создании сайтов полный новичок. Для меня создать сайт - это создать папку, в ней index.php и две...

Как создают языки программирования
У меня возник такой любительский вопрос...как создают языки программирования и как создали первый...

Как создают Flash-игры?
Есть мини-игры созданые в формате флэш. Я слышал, что их клепают с помощью какойто проги. Никто не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru