Форум: "Основная";
Текущий архив: 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