Форум: "Основная";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
ВнизМодуль Classes. Найти похожие ветки
← →
Zak3D[@Tm] © (2004-08-13 00:39) [0]Привет мастера, вот у меня какая проблема - из модуля Classes мне нужна всего одна ф-ция, это - TMemoryStream, сам модуль занимает не хило места в exe и поэтому мне надо избавиться от всего лишнего из этого модуля, но как я не старался, у меня это не получается, модуль огромный, и то и дело вылазят новые ошибки при сохранении. Кто-нибудь пробовал укоротить Classes? Если да, то буде премного благодарен за совет или помошь.
← →
-=Iton=- © (2004-08-13 01:22) [1]Делфю и так глючит,а если еще и урезать ....
← →
Zak3D[@Tm] © (2004-08-13 13:26) [2]Так я ненужное хочу вырезать.
← →
Sapersky (2004-08-13 13:41) [3]Нужен именно TMemoryStream из classes.pas или произвольный объект того же назначения? Для чего он будет использоваться?
Если произвольный - могу порекомендовать KOL, там вроде есть.
← →
Anatoly Podgoretsky © (2004-08-13 13:56) [4]Модуль Classes не добавляет ни одного байта, если из него ни чего не используется, это честный модуль.
← →
GuAV © (2004-08-13 14:45) [5]Zak3D[@Tm] © (13.08.04 13:26) [2]
Ох уж эти херурги - им бы тока резать!
Попробуй лучше написать свой TMemoryStream.
---
Значит, без VCL пишешь? А может даже без SysUtils? тогда зачем Delphi ?
← →
Ega23 © (2004-08-13 14:54) [6]мне нужна всего одна ф-ция, это - TMemoryStream
С каких пор МемориСтрим стал функцией????
← →
Юрий Зотов © (2004-08-13 17:26) [7]> Zak3D[@Tm] © (13.08.04 00:39)
> сам модуль занимает не хило места в exe
Почему Вы так решили? Из любого модуля в Ваш EXE войдет только то, что Вы реально используете. Плюс код инициализации/финализации, который, если даже и есть, то обычно небольшой.
← →
Zak3D[@Tm] © (2004-08-13 18:53) [8]Sapersky
Я использую его для хранения Wav файла в памяти.
← →
Anatoly Podgoretsky © (2004-08-13 19:10) [9]Юрий Зотов © (13.08.04 17:26) [7]
У Classes как раз нет этих секций, поэтому его безопасно подлючать к любому модулю.
← →
GuAV © (2004-08-13 19:46) [10]Anatoly Podgoretsky © (13.08.04 19:10) [9]
из D7 - там это уже не честный модуль.initialization
InitThreadSynchronization;
AddModuleUnloadProc(ModuleUnload);
{$IFDEF MSWINDOWS}
GlobalNameSpace := TMultiReadExclusiveWriteSynchronizer.Create;
{$ENDIF}
{$IFDEF LINUX}
GlobalNameSpace := TSimpleRWSync.Create;
{$ENDIF}
RegGroups := TRegGroups.Create;
IntConstList := TThreadList.Create;
GlobalFixupList := TThreadList.Create;
finalization
UnRegisterModuleClasses(HInstance);
GlobalNameSpace.BeginWrite;
FreeIntConstList;
RemoveFixupReferences(nil, "");
FreeAndNil(GlobalFixupList);
FreeAndNil(GlobalLists);
FreeAndNil(RegGroups);
GlobalNameSpace := nil;
RemoveModuleUnloadProc(ModuleUnload);
FreeAndNil(SyncList);
DoneThreadSynchronization;
FreeAndNil(FindGlobalComponentProcs);
end.
← →
Anatoly Podgoretsky © (2004-08-13 20:24) [11]GuAV © (13.08.04 19:46) [10]
Понял, я смотрел в Д5, там честный модуль.
← →
GuAV © (2004-08-13 21:05) [12]Да и у "честного" модуля
end.
компилируется в sub чего-то там и RET :-P в Д? опять же.
← →
Sapersky (2004-08-13 22:54) [13]Ага, "честный". Вот:
initialization
InitializeCriticalSection(ThreadLock);
AddModuleUnloadProc(ModuleUnload);
GlobalNameSpace := TMultiReadExclusiveWriteSynchronizer.Create;
ClassList := TThreadList.Create;
ClassAliasList := TStringList.Create;
IntConstList := TThreadList.Create;
GlobalFixupList := TThreadList.Create;
finalization
UnRegisterModuleClasses(HInstance);
GlobalNameSpace.BeginWrite;
FreeIntConstList;
ClassList.Free;
ClassAliasList.Free;
RemoveFixupReferences(nil, "");
GlobalFixupList.Free;
GlobalFixupList := nil;
GlobalLists.Free;
FreeThreadWindow;
GlobalNameSpace.Free;
GlobalNameSpace := nil;
RemoveModuleUnloadProc(ModuleUnload);
DeleteCriticalSection(ThreadLock);
end.
И ещё sysutils использует, так что размер минимального проекта подрастает до 60 (примерно) кб.
Я использую его для хранения Wav файла в памяти.
Ну так, может, вообще без потоков обойтись? Берём указатель (массив), читаем, инкрементируем.
← →
Anatoly Podgoretsky © (2004-08-14 00:03) [14]Ой не заню как смотрел, но в Д5 тоже самое :-)
← →
Anatoly Podgoretsky © (2004-08-14 11:17) [15]Кстати сама идея явно обречена на провал, поскольку данный модуль практически везде используется, в том числе и в используемых компонентах. Разве что в простом консольном приложении можно без него обойтись.
← →
GuAV © (2004-08-14 13:56) [16]Anatoly Podgoretsky © (14.08.04 11:17) [15]
Вам ещё не попадался урезаный system.dcu ? Так знайте, он есть.
← →
Anatoly Podgoretsky © (2004-08-14 14:03) [17]Какой ужас, на святое покусились
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.035 c