Форум: "KOL";
Текущий архив: 2013.07.21;
Скачать: [xml.tar.bz2];
ВнизПро дружбу 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 вся ветка
Форум: "KOL";
Текущий архив: 2013.07.21;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.002 c