Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.20;
Скачать: CL | DM;

Вниз

Финальная сборка DLL   Найти похожие ветки 

 
Ega23 ©   (2005-02-08 09:46) [0]

Вчера про DLL вопрос задавал. Все проблемы победил, но теперь эта сволочь 542К после билда занимает.
Все опции, типа include TD32 info отключил.
Чего бы ещё отключить можно?   :о)


 
Skier ©   (2005-02-08 09:48) [1]

>Ega23 ©   (08.02.05 09:46)  
c VCL внутри библиотеки работаешь ?


 
Просто Джо ©   (2005-02-08 09:49) [2]


> Чего бы ещё отключить можно?  


Выкинь VersionInfo. Еще пару килобайт скинешь. ;)

"Для распространения в нете не очень то хорошо" (с)


 
Ega23 ©   (2005-02-08 09:50) [3]

c VCL внутри библиотеки работаешь ?

К сожалению. Да библиотека-то из одной функции, вот:


uses
 SysUtils,
 Classes,
 dbtables
 ;

{$R *.RES}

//*************************************************************************************

function GetNewParam(aAliasName:PChar;var pd:PChar):Cardinal; StdCall;
   function CodeIt(aStr,aKey:string):string;
   var  s:string;
   begin
     Result:=S;
   end;

const
stdsql="select LimitNum from dbo.paramsglb";
xkey="836519";

var
DB:TDataBase;
Qu:TQuery;
ss:string;

begin
Result:=0;
try
  DB:=TDataBase.Create(nil);
  try
   With DB do
    begin
     AliasName := String(aAliasName);
     DatabaseName := "BD0";
     LoginPrompt:=False;
     Params.Clear;
     Params.Add("USER NAME=KEDR0");
     Params.Add("SQLQRYMODE=SERVER");
     Params.Add("PASSWORD=");
     Connected:=True;
    end; //With DB do
   Qu:=TQuery.Create(nil);
   try
    With Qu do
     begin
      DatabaseName:=DB.DatabaseName;
      RequestLive:=True;
      SQL.Text:=stdsql;
      Open;
      if (Active) and (not IsEmpty) then
       begin
        ss:=Fields[0].AsString;
        ss:=CodeIt(ss, xkey);
        pd:=StrPCopy(pd, ss);
       end;
     end;
   finally
    Qu.Active:=False;
    Qu.Free;
   end;
  finally
   DB.Connected:=False;
   DB.Free;
  end;
except
 Result:=$FFFFFFFF;
end;
end;

//*************************************************************************************

exports

GetNewParam    name    "GetNewParam";

begin

end.


 
Ega23 ©   (2005-02-08 09:51) [4]

2 Просто Джо ©   (08.02.05 09:49) [2]
Выкинь VersionInfo. Еще пару килобайт скинешь. ;)

Даже и не включал.


 
Skier ©   (2005-02-08 09:53) [5]

>Ega23 ©   (08.02.05 09:50) [3]
И насколько необходимо из-за одной функции библиотеку создавать ?


 
Просто Джо ©   (2005-02-08 09:56) [6]

Мне кажется, в данном случае, вместо ДЛЛ вполне подойдет какой-нибудь маленький скриптовый файлик собственного формата. А главная программа его будет парсить и получать свой NewParam


 
Ega23 ©   (2005-02-08 09:59) [7]

И насколько необходимо из-за одной функции библиотеку создавать ?

Очень много разных проектов используют. И не только на Delphi написанных.


 
Ega23 ©   (2005-02-08 10:01) [8]

А главная программа его будет парсить и получать свой NewParam

На одном объекте - один пароль, на другом - другой и т.д.


 
Digitman ©   (2005-02-08 10:06) [9]


> Ega23 ©   (08.02.05 09:59) [7]
> Очень много разных проектов используют. И не только на Delphi
> написанных.


кроме Делфи-приложений твою библиотеку может использовать разве что BCB-приложения

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


> теперь эта сволочь 542К после билда занимает


пересобери библ.проект с опцией использования ран-тайм пакетов
размер файла библ-ки существенно уменьшится, но при этом придется распространять файлы используемых библ-кой ран-тайм пакетов


 
Ega23 ©   (2005-02-08 10:08) [10]

2 Digitman ©   (08.02.05 10:06) [9]
приложения, написанные в иных средах, твою библ-ку использовать не могут.

А VC++ ?

пересобери библ.проект с опцией использования ран-тайм пакетов

Так не пойдёт. Пусть лучше 542K


 
Просто Джо ©   (2005-02-08 10:10) [11]


> Пусть лучше 542K


И это есть правильно.
8)


 
BlackTr   (2005-02-08 10:26) [12]


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


А енто почему ??


 
REA   (2005-02-08 10:33) [13]

Если вынести всю работу с базой в exe и вызывать при помощи Callbacks, то библиотека заметно похудеет. А использовать RTL на мой взгляд разумно.


 
Digitman ©   (2005-02-08 10:34) [14]


> Ega23 ©   (08.02.05 10:08) [10]
> А VC++ ?


эээ .. приношу извинения ... посмотрел на декларацию не той (CodeIt) ф-ции, что ты экспортируешь ..

мне показалось, что ты возвращаешь ansistring


 
Семен Сорокин ©   (2005-02-08 10:34) [15]

без использования dbtables, можно будет намного меньшего размера добиться: можно переделать на ADO с поздним связыванием.


 
Digitman ©   (2005-02-08 10:42) [16]


> Ega23


если ты планируешь распространять свою ДЛЛ лишь среди потребителей СВОЕГО ЖЕ (ранее распространного тобой) ПО, то нет видимого резона не использовать ран-тайм пакеты ... один раз распространил набор ран-тайм пакетов, и далее смело плоди и распространяй миним. по размеру исп.модули - требуемые ран-тайм библиотеки уже есть на машинах твоих клиентов ... а если нет - включай их в инстал.дистрибутив как и положено ..

если же ДЛЛ универсальна и ориентирована на использование в ПО самых разных производителей, то тогда м.б. и разумно не использовать ран-тайм пакеты, НО не менее разумным будет и оформление своей ДЛЛ как олей-сервера автоматизации, включая и библ-ку типов


 
BlackTr   (2005-02-08 10:49) [17]

Можно Aspack"ом пройтись размер уменьшиться раза в 2-3 :))


 
Amoeba ©   (2005-02-08 10:57) [18]


> BlackTr   (08.02.05 10:49) [17]
> Можно Aspack"ом пройтись размер уменьшиться раза в 2-3 :))

Это только на диске. На самом деле это плохой и ВРЕДНЫЙ совет.
http://podgoretsky.com/ftp/Docs/Misc/ExePack/ExePack.html


 
Ega23 ©   (2005-02-08 11:22) [19]

Всем большое спасибо за советы!

2 Digitman ©   (08.02.05 10:42) [16]

Насчёт ран-тайма - подумаю, может шефа убедю...  :о)


 
Erik1 ©   (2005-02-08 12:06) [20]

Можно спокойно выбрасить TQuery и TDataBase.
DbiOpenDatabase(Pointer(DBName), nil,
DBIOpenMode(Integer(OpenModes[FReadOnly]) or OpenModeFlag), ShareModes[FExclusive], Pointer(StrToOem(DBPassword)), OptParamCount, OptFldDesc, OptParam, FHandle);
И выполнить SQL
DbiQExecDirect(Handle, qrylangSQL, PChar(SQL), Cursor)
А SysUtils заменить можно. Вобщем есть много вариантов.


 
Gloomer ©   (2005-02-08 13:23) [21]

>Erik1 ©   (08.02.05 12:06) [20]
А SysUtils заменить можно.

А чем? И какой смысл, если SysUtils все равно используется в модуле DbTables? Вот избавиться от DbTables - это существенно усеньшит размер, хотя Ega23 это вряд ли понравится.
Проще оставить как есть или писать не на Делфях


 
jack128 ©   (2005-02-09 01:15) [22]

Собираешь какой дельфей??? в пятерке модуль db тянет за собой Forms, а в старших - нет. Пересобери библиотеку в D6 или быше..


 
Fay ©   (2005-02-09 03:56) [23]

У меня вАщЕ есть большие сомнения в ценности этой Dll.


 
Ega23 ©   (2005-02-09 09:26) [24]

У меня вАщЕ есть большие сомнения в ценности этой Dll.

Это - к моему шефу. Могу телефон дать.



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

Текущий архив: 2005.02.20;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.027 c
3-1106415836
Mortal
2005-01-22 20:43
2005.02.20
Вопрос про Rave Reports


1-1107759093
Wood
2005-02-07 09:51
2005.02.20
Индикация процессов


3-1106078305
Eraser
2005-01-18 22:58
2005.02.20
Восстановление базы данных mdb (Access)


14-1106745233
juice
2005-01-26 16:13
2005.02.20
Математика: метод и&#10


9-1100363056
Creep
2004-11-13 19:24
2005.02.20
Округления GLFloat