Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сменный График работы на месяц http://www.cyberforum.ru/cpp/thread638507.html
Всем Здравствуйте! Столкнулся с нестандартной задачей. Необходимо сделать График работы на месяц. Кто сталкивался с данной задачей?! Может есть какието наработки или идеи. Вообщем меня интересует сам алгоритм вычислений построения графика. Основные условия: МИН раб дней подряд МИН вых дней подряд Требуемое количество сотрудников в выходной
C++ Секция resource подскажите. вот у меня есть в файлах ексешных секция .rsrc только там данные размещены не последовательно.. т.е. между данными есть пустые места... http://www.cyberforum.ru/cpp/thread635684.html
C++ Ошибка компиляции как положительный результат
Товарищи, подскажите, пожалуйста, есть ли возможность средствами плюсов следить за ошибками компиляции? Необходимо в процессе компиляции встретить некоторое выражение, удостовериться, что на нём произошла ошибка компиляции, и продолжить компиляцию дальше. При этом в итоге компиляция должна пройти успешно, то есть эта ожидаемая ошибка должна быть подавлена. Получается нечто вроде исключений, но...
кое-что про const C++
решил обновить свои знания про const и везде вижу что const это константа инициализировать нужно при объявлении.....ну это мы и так знаем а еще такое "константная переменная" это типа "Небесная тверь" или "под сенью солнца" меня интересует когда она инициализируется на этапе компиляции или при исполнении вот так ведь правильно const int d=5; int n; т.е размер массива известен до...
C++ exception : 0xC0000005: Access Violation http://www.cyberforum.ru/cpp/thread632008.html
Разработка идет по windows mobile 6. Возникла необходимость в определенном случае менять данные в памяти по адресу 0x02020000 cо смещение 0x4a. Написал в лоб: int offset = 0x4a; int Addr = 0x02020000; Addr += offset; char * c = (char *) Addr; *c = 0x1; Выдает исключение: exception : 0xC0000005: Access Violation. Нет доступа к памяти. Попытался сделать через ReadProccessMemory и...
C++ Можно ли написать такую программу Здравствуйте! Мне нужна программа, которая содержала бы в себе всего два поля, при заполнении которых, содержимое этих полей сохранялось в файл на сервере (сайте например). Так же, нужно чтобы программа содержала кнопку "Отправить", для передачи содержимого полей на сервер и сообщение о удачной отправке. Можно ли написать такую программу на С++? подробнее

Показать сообщение отдельно
wolfalone
В экстазе
143 / 127 / 26
Регистрация: 05.08.2012
Сообщений: 653
Записей в блоге: 3
19.08.2012, 01:29  [ТС]     Как создают маленькие приложения? (размером до ~50-70Кб)
Цитата Сообщение от 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) нет?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru