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

Вниз

Финальная сборка 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.036 c
14-1107338274
syte_ser78
2005-02-02 12:57
2005.02.20
блин!


1-1107341925
TP
2005-02-02 13:58
2005.02.20
Virtual ListView


1-1107351312
msm
2005-02-02 16:35
2005.02.20
Тема: проблема с TDateTime


3-1106207476
Duka
2005-01-20 10:51
2005.02.20
Структура базы cds


3-1106558657
kasper111
2005-01-24 12:24
2005.02.20
подскажите синтаксис командый update в delphi4





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