Главная страница
    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.035 c
14-1091985919
AlexG
2004-08-08 21:25
2004.08.29
Говорят, технология ActiveX устарела


4-1090242754
Death_R
2004-07-19 17:12
2004.08.29
Отключение функциональных клавиш


14-1091964298
ИМХО
2004-08-08 15:24
2004.08.29
Смотреть телевидение через компьютер


3-1091462964
ceval
2004-08-02 20:09
2004.08.29
как упаковать базу(dbf-файл) с помощью ADO


3-1091532057
Jgn
2004-08-03 15:20
2004.08.29
CheckBox in EHGrid





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