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

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

Про дружбу KOL и FPC


Galkov ©   (2009-07-06 18:49:00) 

У меня пока 2 конкретных вопроса
1) StrScan - падает нафиг под FPC
2) TObj.Destroy - нестыковка с конструкторами

По п.1 там как-то все понятно - у FPC особо тонкое понимание как надо выходить из ф-ии. Тут конкретное предложение: заменить RETна, например - INC EAX
Вроде это единственный RET в ф-иях, не имеющих PAS-версии

По п.2 - мне не все понятно. Все конструктора контролов идут через New, следовательно, завершением должно быть бы dispose...
И что занимательно: так оно и было в "ранних версиях" KOL. Получается, что это сегодняшнее FreeMemне есть древний артефакт, а вновь сделанное.
Непонятка, неправильная какая-то.
Отсюда вопрос: а что такое случилась, что произошла замена dispose на FreeMem???

Без понимания причин такового действа, трудно выработать какое-то компромисное решение :(
А надо бы.


Vladimir Kladov   (2009-07-08 15:30:00) [1]

От Борланда наверное уже ничего не выйдет. То что выходит (вроде turbo) - это уже не от него. В любом случае KOL лучше использовать со старыми Delphi, оптимально - версия 6. Для программинга под новые Windows 7 и далее все равно придется от win32 отказываться. Другое дело, помрет ли win32. Что-то сомнительно.


Galkov   (2009-07-07 16:58:00) [2]

Ага, понял. Спасибо парни, распояснили.

Однако, Хак - он и в Африке Хак. Грубо говоря корректная работа Хака не гарантирована даже в Дельфи. Выйдет от дяденьки Бормана какой-нибудь супер-пупер-релиз - и сосите фикус в саду у дяди Вани....

Не, Хак - это не правильно.
Противоречит профессиональному принципу: Не планируй себе проблемы, попробуй сначала справиться с теми, которые возникнут и без планирования:)

Вот интересно теперь, что на это скажет "начальник транспортного цеха" .......


Sapersky   (2009-07-07 16:33:00) [3]

Да, пост [5] относится к Delphi, как в FPC - не в курсе.


Sapersky   (2009-07-07 16:21:00) [4]

Если "полей типа строка" (а также дин. массивов и прочих управляемых указателей) нет - тогда без разницы, компилятор при этом всё равно заменяет Dispose на FreeMem.
Если есть - можно заранее прибить их вручную. Собственно, в некоторых случаях (наследование) их приходится прибивать вручную (это рекомендуется в KOLBook, насколько помню), т.к. управляемые указатели не полностью совместимы с object (автоматически освобождаются поля только последнего уровня наследования).


Yury Sidorov   (2009-07-07 16:12:00) [5]

Использование FreeMem после New является хаком. Это сделано, чтобы не производилась финализация полей типа строка итд при уничтожении объекта. Это экономит какое-то количество байт кода.
В FPC такой хак не работает, поэтому нужно использовать корректную связку New/Dispose.

Портировать исправления назад в основную ветку KOL у меня нет желания. Тем более я отказался от ASM версии в KOL-СЕ...


Galkov   (2009-07-07 14:24:00) [6]


> использование dipose после new

sorry - хотел написать "использование FreeMem после New" :)


Galkov   (2009-07-07 14:21:00) [7]

Зравствуйте, приехали :)

Вообще-то, меня в большей степени интересуют знания
Например, правильно, или нет - использование dipose после new. Может я чего-то недопонимаю - это гораздо страшнее, чем "упавшее приложение".

Если правильно - это один разговор. И надо разбираться далее, пополнять свое образование, например.
Если нет, то причем тут конкретное имя ветки - это положено фиксить в ЛЮБОЙ библиотеке.
((btw: да, я помню, первый раз именно на эту проблему мне именно Вы и указали, коллега))

" Много других" - это очень интересно, конечно. Но ведь очень важным является понимание, почему это множество не зафиксено в штатной версии.

Есть зание о какой-то баге => появляется знание о ее фиксинге => проводится фикс этой баги, независимо от ее локализации
Как-то мне представляется это более правильным, чем создавать различия не только в использовании WinApi, но и в объеме пофиксенных багов.
ИМХО :)


Yury Sidorov   (2009-07-07 12:44:00) [8]

С FPC нужно использовать KOL-CE. Там, кроме этих проблем, исправлено еще много других.


Наверх

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