Главная страница
    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.51 MB
Время: 0.051 c
1-1107434267
Gek1
2005-02-03 15:37
2005.02.20
Поток. Остановка и разрушение!


1-1107746856
Bes
2005-02-07 06:27
2005.02.20
Поток в DLL...


1-1107354569
aleks-ran
2005-02-02 17:29
2005.02.20
Значения Low и High в многомерных динамических массивах


1-1107852549
Denis
2005-02-08 11:49
2005.02.20
Как проскроллить RichEdit до выделеного участка текста?


3-1106254535
Некто
2005-01-20 23:55
2005.02.20
Ограничения реализованные в триггерах (чисто теоретически)





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