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

Вниз

Модуль 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.031 c
14-1092206336
Labert
2004-08-11 10:38
2004.08.29
С чего вы начинали?


3-1091626456
Виктор
2004-08-04 17:34
2004.08.29
В IBExpert не могу отобрать права на все таблицы


14-1092240235
TUser
2004-08-11 20:03
2004.08.29
Вася Добрый уже ожил?


4-1090088380
parovoZZ
2004-07-17 22:19
2004.08.29
Картинки *.PNG


6-1086863457
Kraj
2004-06-10 14:30
2004.08.29
Socket