Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Вниз

как уменьшить размер консольного приложения   Найти похожие ветки 

 
AntonVS ©   (2004-07-12 08:58) [0]

создаю консольное приложение, реализующее печать из файла.. Пользую Printer(модуль Printers). Все лишние модули убрал. размер файла все равно слишком большой (356 Кб). Как уменьшить размер хотя бы до 50-80 Кб?


 
Ega23 ©   (2004-07-12 08:59) [1]

Все лишние модули убрал. размер файла все равно слишком большой (356 Кб). Как уменьшить размер хотя бы до 50-80 Кб?

Сначала вопрос: А смысл?
Теперь, собственно, ответ: пиши на WinAPI.


 
Anatoly Podgoretsky ©   (2004-07-12 09:03) [2]

AntonVS ©   (12.07.04 08:58)  
Не использовать модуль Printers


 
Digitman ©   (2004-07-12 09:03) [3]

вот это

uses Windows, WinSpool, SysUtils, Classes, Graphics, Forms;

присутствует в модуле Printers

поубирай эти лишние модули - и будет тебе счастье


 
AntonVS ©   (2004-07-12 09:05) [4]

>>Сначала вопрос: А смысл?
ну, есть смысл... эта задача - часть большого проекта...
нужно, чтоб на дискету все влазило...

>>Теперь, собственно, ответ: пиши на WinAPI.
а еще варианты?


 
AntonVS ©   (2004-07-12 09:09) [5]

>>Не использовать модуль Printers
а какая альтернатива?

>>поубирай эти лишние модули - и будет тебе счастье
и как их вырезать?


 
Ega23 ©   (2004-07-12 09:23) [6]

Пользуйся WinAPI:  GetPrinter, OpenPrinter, etc.


 
Ega23 ©   (2004-07-12 09:23) [7]

Кстати, 356 Кб отлично на дискету влазят.


 
ЮЮ ©   (2004-07-12 09:26) [8]

>ну, есть смысл... эта задача - часть большого проекта...
>нужно, чтоб на дискету все влазило...

1) Добавить функциональность в другой проект
2) Во всех проектах использовать run-time пакет vcl*.bpl


 
Anatoly Podgoretsky ©   (2004-07-12 09:32) [9]

AntonVS ©   (12.07.04 09:05) [4]
Проект настолько бедный, что денег на дискеты 720/1440 кб нет?


 
AntonVS ©   (2004-07-12 09:37) [10]

>>Кстати, 356 Кб отлично на дискету влазят.
эта задача - маленькая часть....
вся прога должна влазить на дискету..., в том числе и этот exe-щник


 
evvcom ©   (2004-07-12 09:42) [11]

Тебе уже объяснили, выбирай: либо быстрота и удобство VCL, либо переходи на WinAPI. Еще альтернатива KOL.


 
AntonVS ©   (2004-07-12 09:54) [12]

>>Еще альтернатива KOL.
Во....
это кто такой?


 
Anatoly Podgoretsky ©   (2004-07-12 09:54) [13]

evvcom ©   (12.07.04 09:42) [11]
Неправильный подход, надо найти спонсора, профинансирующего покупку пишущего CD


 
evvcom ©   (2004-07-12 09:58) [14]


> >>Еще альтернатива KOL.
> Во....
> это кто такой?

А глаза поднять на список форумов?


> Неправильный подход, надо найти спонсора, профинансирующего
> покупку пишущего CD

Гы-гы!

Объявляется конкурс на самого щедрого спонсора!


 
AntonVS ©   (2004-07-12 10:07) [15]

>>А глаза поднять на список форумов?

угу


 
Slym ©   (2004-07-12 10:23) [16]

1. скопируй Printers в папку проекта.
2. Убери из Printers Forms!!!
3. Добавь uses Messages;
4. Найди строку
function AbortProc(Prn: HDC; Error: Integer): Bool; stdcall;
именно в этой функции (для D7) используется Application.ProcessMessages и замени на код:

function ProcessMessage(var Msg: TMsg): Boolean;
begin
 Result := False;
 if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then
 begin
   Result := True;
   TranslateMessage(Msg);
   DispatchMessage(Msg);
 end;
end;

function AbortProc(Prn: HDC; Error: Integer): Bool; stdcall;
var Msg: TMsg;
begin
 while ProcessMessage(Msg) do {loop};
 Result := not FPrinter.Aborted;
end;


 
Slym ©   (2004-07-12 10:28) [17]

Или ваще убери Application.ProcessMessages... и смотри что выйдет
Мастаки напешите ктонить статью "Вырезаем нужный компонент из кучи стандартных с целью уменшения размера exe", а то мне вылом...


 
Slym ©   (2004-07-12 10:34) [18]

И поищи UPX - упаковщик Exe, но сначала почитай статью Подгоретского на эту тему


 
AntonVS ©   (2004-07-12 10:38) [19]

Slym, спасибо
exe-щник в 3 раза уменьшился


 
AntonVS ©   (2004-07-12 10:54) [20]

а есть ли где в настройках Delphi такая штука, как не пользовать переменные, классы не используемые в проекте?

я порылся - не нашел ничего.

но по идее должно быть что-нибудь такое....


 
evvcom ©   (2004-07-12 10:56) [21]

Вырезав все ненужное (VCL), ты получил чистое API. О чем изначально и говорилось. :)


 
Ega23 ©   (2004-07-12 11:07) [22]

Я думаю, что если ты воспользуешься тем, что я писал тебе в [6], размер ещё сильнее уменьшится.  :о)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.035 c
1-1089285803
Tom
2004-07-08 15:23
2004.07.25
Oсвобождение критической секции


14-1088743781
MBo
2004-07-02 08:49
2004.07.25
Пятница - не сломай головы ;^)


3-1088415733
MORA
2004-06-28 13:42
2004.07.25
IB SERVER


1-1089797743
hgd
2004-07-14 13:35
2004.07.25
Как записать звук и представить его в виде графика?


1-1089265327
Bart
2004-07-08 09:42
2004.07.25
сервис запускает другое приложение





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский