Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.027 c
9-1084373855
S.W.I.N.E.
2004-05-12 18:57
2004.08.29
Крысы и DelphiX


1-1092414954
Eugene1501
2004-08-13 20:35
2004.08.29
Access violation Как отловить?


3-1091619121
Алексей
2004-08-04 15:32
2004.08.29
FOX, ADO и отрицательный числа


9-1084108713
ork
2004-05-09 17:18
2004.08.29
Алгоритм


1-1092231625
andrey__
2004-08-11 17:40
2004.08.29
Организация очереди





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