Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Маленькая программка с ShowMessage, например, как?? у меня выходит больше 150 кб =( 
:(
    Опции темы
bel_nikita
Дата 1.11.2004, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



Perchilla
Цитата
да нет  стоит у меня <windows.h>
и не компилится?


Цитата
fatal error C1010: unexpected end of file while looking for precompiled header directive

а, ну понятно:
тогда зайди в Project/Settings/Precompiled Headers и выстать Not Using Precompiled Headers :cool


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
S.A.P.
Дата 2.11.2004, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 9
Всего: 71



Вау!!! У меня вобще один килобайт вышел :yasno
PM MAIL   Вверх
S.A.P.
Дата 2.11.2004, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 9
Всего: 71



Блин, обалдеть, у меня на асме 4 килобайта выходило. А еще меньше сделать можно?
PM MAIL   Вверх
Step
Дата 2.11.2004, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



в первую очередь надо выставить динамическо подключение библиотек

второе для релиз версии отключить внедрение дебаг инфы..

третье оптимизация по размеру


любая простейшая программа на МФЦ в релиз версии очень редко выходит за размер 30 кб и выходит она только из за рессурсов

на асме подобная программа не должна выходить за 600 байт....., и не может быть меньше 512 байт....






--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
xDriver
Дата 2.11.2004, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 1.11.2004

Репутация: 1
Всего: 1



Да ивиняюсь забыл :D #include <windows.h>
И компилить только Release проект !!! Debug работать не будет !!

Ну и конечно опечатался размер 2048 байт ! ;-) ;-)
респект Perchilla
PM MAIL   Вверх
S.A.P.
Дата 2.11.2004, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 9
Всего: 71



Цитата(xDriver @ 2.11.2004, 13:07)

респект Perchilla

Это что ты типа посмеялся надо мной? :)
PM MAIL   Вверх
Атос
Дата 6.11.2004, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 11.9.2004
Где: Екатеринбург

Репутация: нет
Всего: нет



1024 байта в Release версии:

Код

#pragma comment(linker,"/MERGE:.rdata=.text")
#pragma comment(linker,"/ENTRY:WinMain")

#include "windows.h"

int WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR, int)
{
MessageBox(0,"Ну очень маленькая","Маленькая прожка",0);
return 0;
}

PM MAIL ICQ   Вверх
Атос
Дата 6.11.2004, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 11.9.2004
Где: Екатеринбург

Репутация: нет
Всего: нет



для сравнения - тот же код на ассемблере:

Код

; выдем из проги по ret 0, не по стандартному ExitProcess
; чтобы сэкономить 64 байта на вызове ExitProcess
; и 48 байтов на имортировании ExitProcess

;includelib kernel32.lib
; extrn __imp__ExitProcess@4:dword
;ExitProcess equ __imp__ExitProcess@4

includelib user32.lib
extrn __imp__MessageBoxA@16:dword
MessageBox equ __imp__MessageBoxA@16

.386
.model flat

.const
msg_title db "Маленькая прожка", 0
msg_text db "Ну очень маленькая", 0

.code
_start:
push 0
push offset msg_title
push offset msg_text
push 0
call MessageBox

;push 0                  ; если ExitProcess() вместо ret 0, то размер 736 байт
;call ExitProcess
ret 0
end _start


сборка:
Код

ml /c /coff /Cp /Zp1 msgbx.asm
link msgbx.obj /subsystem:windows /align:16 /merge:.rdata=.text


...занимает 624 байта.... так что асм форева! smile

Это сообщение отредактировал(а) Атос - 6.11.2004, 11:54
PM MAIL ICQ   Вверх
knave
Дата 12.11.2004, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 6.3.2003
Где: Санкт-Питербург ( Россия)

Репутация: 1
Всего: 5



Смешно читать. Вы не забывате что елсилинкуете со статическими библиями то в вашу программу вставляеться весь код который обрабатывает ваше окно, тот же MessageBox.
Это окно такое же полноценное коно как и любое другое, несмотря на то что размеры мальнькие. Если хочеш узнать реальный размер твоей программы то потри obj файл от твоего исходника.Лиюо сделай компиляцию с ДЛЛ. ТОгда программа бдет весить примерно 30 килобайт. Но за ней рпидется всервемя таскать все необходимые ДЛЛ.

Так что хоть MessageBox хоть просто окно,весить будет одинаково - та как не надо забывать про код класса окна. Ведь все события что есть у него, кто то должен обрабатывать.

Это сообщение отредактировал(а) knave - 12.11.2004, 14:52


--------------------
С наилучшими пожеланиями !!!
PM MAIL ICQ   Вверх
S.A.P.
Дата 14.11.2004, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 9
Всего: 71



knave не понял тебя, какие еще DLL нужны, если программа ничего не использует кроме стандартных функций из kernel, user и gdi ?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0796 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.