Главная страница
    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.033 c
1-1089709192
han
2004-07-13 12:59
2004.07.25
Не находит Delphi-йского модуля!!!


8-1084035716
$tranger
2004-05-08 21:01
2004.07.25
Меню как в OFFICE XP


3-1088676154
BiSido
2004-07-01 14:02
2004.07.25
Как изменить тип поля в БД програмно?


8-1083651619
Vmaster
2004-05-04 10:20
2004.07.25
программный доступ к TV out


14-1089044015
Nous Mellon
2004-07-05 20:13
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский