Главная страница
    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.5 MB
Время: 0.037 c
4-1087052143
juiceman
2004-06-12 18:55
2004.07.25
Типы хуков


4-1086537755
Foger
2004-06-06 20:02
2004.07.25
ico из exe


4-1086352639
Kair
2004-06-04 16:37
2004.07.25


10-1019900005
Denis_1
2002-04-27 13:33
2004.07.25
DCOM


3-1088665298
MORA
2004-07-01 11:01
2004.07.25
IB





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский