Форум программистов, компьютерный форум 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++ Можно ли написать такую программу Здравствуйте! Мне нужна программа, которая содержала бы в себе всего два поля, при заполнении которых, содержимое этих полей сохранялось в файл на сервере (сайте например). Так же, нужно чтобы программа содержала кнопку "Отправить", для передачи содержимого полей на сервер и сообщение о удачной отправке. Можно ли написать такую программу на С++? подробнее

Показать сообщение отдельно
VTsaregorodtsev
317 / 297 / 41
Регистрация: 19.02.2010
Сообщений: 1,284
25.08.2012, 22:19     Как создают маленькие приложения? (размером до ~50-70Кб)
Цитата Сообщение от ExeiLj Посмотреть сообщение
Так может кто скажет, как настроить Embarcadero RAD Studio, чтобы компилить малые проги (пусть даже только с WinAPI)?
Когда я копилю пустую прогу в VCL Form Application, то получается 300+ кб, в Консоли 7кб. А я читал, что прога (пустая) может весить 1кб! Как этого добиться?
Сделать самому коротенькие стартап-файлы (асм, скомпилированный в объектник), которые будут вызывать либо WinMain, либо DllMain. И ручками подправить файл проекта (или make-файл - от среды разработки зависит) - убрать упоминание стандартной либы и взамен её подключить свой стартап-объектник.

Вот, например, пример асм-кода (старый, может не компиляться современными ассемблерами - нужно будет подправить) такого стартапа для обычного екзешника (для делания дллок будет другой, вызывающий DllMain):
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
.586
.model  flat,stdcall
 
TASM    equ 1
UNICODE equ 0
 
include w32.inc
 
.data?
_hInstance  dd  ?
lpszCmdLine dd  ?
 
.code
start:
;call    InitCommonControls
 call    GetModuleHandle,NULL
 mov     _hInstance,eax
 call    GetCommandLine
 mov     lpszCmdLine,eax
 call   WinMain,_hInstance,NULL,lpszCmdLine,NULL
 call    ExitProcess,NULL
end     start
Видно, что никаких лишних функций не вызывается (а вот стартап из идущей с компилятором библиотеки мог цеплять что-то добавочное - лишнее).
Но в своей проге придётся пользоваться только ВинАПИ - и нельзя будет пользоваться функциями из библиотек компилятора. Потому, что тогда среда разработки будет линковать библиотечный файл, где лежит стандартный стартап-код - и возникнет конфликт (вариант решения - скопировать нужные стандартны библиотечные функции в отдельную либу и ручками прицепить её к проекту). Также стандартные функции могли использовать какие-то переменные, которые мы новым стартап-кодом не инициализировали. Поэтому - при выходе за рамки чистого С (или С++ без классов) и за рамки ВинАПИ возникают проблемы, не всегда решаемые (ну так за изврат с уменьшением размера екзешника надо чем-то платить).
 
Текущее время: 13:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru