Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.003 c
3-1286827107
well
2010-10-11 23:58
2013.07.21
Как удалить(заменить) сообщение об удалении записи?


15-1362228850
xayam
2013-03-02 16:54
2013.07.21
Поделитесь опытом


15-1362136963
Nestor
2013-03-01 15:22
2013.07.21
Как определить, содержит ли окно рендер игры?


15-1362083407
Юрий
2013-03-01 00:30
2013.07.21
С днем рождения ! 1 марта 2013 пятница


15-1361990175
ХХХХХ
2013-02-27 22:36
2013.07.21
Как сделать паузу?





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