Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

KOL: Проблемы совместимости с KOLZLib (потоки) [Delphi, KOL, Windows]


Blackman ©   (2008-01-24 13:29:00) 

В версии 2.84 был значительно изменен формат работы с потоками (Streams), но в то же время добавлен символ условной компиляции STREAM_COMPAT, что должно было приводить к использованию старых деклараций. http://www.delphimaster.ru/cgi-bin/forum.pl?id=1193583248&n=10
Теперь при попытке компилировать KOLZLib с этим символом на саму KOLZLib вроде как не ругается, но KOL собираться не хочет, ни ASM-, ни PAS-версия. Ругается на объявлени функции SeekMemStream и еще нескольких.
В связи с чем вопрос: что сделать проще (и возьмется ли кто-нибудь ;) - протащить нужные изменения в KOL для корректной работы STREAM_COMPAT или переписать KOLZLib для работы с потоками в новом формате?


Blackman   (2008-01-24 16:24:00) [1]


> Разве уже не переделано? На kolmck.net должен быть совместимый
> с новыми потоками вариант, я его в первую очередь поправил.
>


Владимир, извините, действительно Ваша версия работает.
Просто я скачивал последнюю версию с http://kolnmck.ru/там тоже версия KOLZLib 1.1.4 - вот она и не работает.
Еще раз извиняюсь за беспокойство :) Всем спасибо


Дмитрий К   (2008-01-24 15:57:00) [2]


> Теперь при попытке компилировать KOLZLib с этим символом
> на саму KOLZLib вроде как не ругается, но KOL собираться
> не хочет, ни ASM-, ни PAS-версия. Ругается на объявлени
> функции SeekMemStream и еще нескольких.

Это происходит потому, что заголовки функций в секции implementation отличаются от секции interface при объявлении STREAM_COMPAT.

Например, для функции SeekMemString:
interface
 function SeekMemStream( Strm: PStream; {$IFNDEF STREAM_COMPAT} const {$ENDIF} MoveTo: TStrmMove; MoveFrom: TMoveMethod ): TStrmSize;

implementation
 function SeekMemStream( Strm: PStream; const MoveTo: TStrmMove; MoveFrom: TMoveMethod ): TStrmSize;

Поэтому для корректной работы STREAM_COMPAT нужно просто привести в соответствие заголовки функций:
SeekMemStream
SetSizeMemStream
ReadMemStream
WriteMemStream
WriteExMemoryStream


Vladimir Kladov   (2008-01-24 15:22:00) [3]

Разве уже не переделано? На kolmck.net должен быть совместимый с новыми потоками вариант, я его в первую очередь поправил.


Наверх

Титульная страница Поиск, карта сайта Написать письмо