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

Вниз

Про дружбу KOL и FPC   Найти похожие ветки 

 
Galkov   (2009-07-06 18:49) [0]

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

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

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

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


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

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


 
Galkov ©   (2009-07-07 14:21) [2]

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

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

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

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

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


 
Galkov ©   (2009-07-07 14:24) [3]


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

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


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

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

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


 
Sapersky   (2009-07-07 16:21) [5]

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


 
Sapersky   (2009-07-07 16:33) [6]

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


 
Galkov ©   (2009-07-07 16:58) [7]

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

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

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

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


 
Vladimir Kladov ©   (2009-07-08 15:30) [8]

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



Страницы: 1 вся ветка

Текущий архив: 2013.07.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.006 c
15-1360285956
Кто б сомневался
2013-02-08 05:12
2013.07.21
Медленная отрисовка 2D GDI Windows 7 (в 4.5 раза медленнее XP)


15-1362166343
N.Cage
2013-03-01 23:32
2013.07.21
Nokia Lumia(отзывы о Винде)


15-1362121080
Jeer
2013-03-01 10:58
2013.07.21
Вдруг пригодится..


15-1362084293
Германн
2013-03-01 00:44
2013.07.21
D-Link DSL-2570


4-1264756803
Handbrake
2010-01-29 12:20
2013.07.21
Вопрос по memory mapped files